Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Инструментарий для вебмастеров #9


WeBinstruments

Инструментарий для веб-мастеров 9

 
 Меню
  PHP скрипты  
  Программы  
  Документация  
  Новости  
  Статьи  
 
 Контакты
  icq: 158325531
  email: adm.webi.ru
 
 

   Как создавать папки в PHP

Комментарии к статье и вопросы http://webi.ru/webi_articles/mkdir_safe_mode_ftp.html
Автор статьи webi.ru

Как создавать папки в PHP

В этой статье я опишу один вариант обхода проблемы создания папок с помощью php в безопасном режиме.
Для создания папки в PHP предусмотрена стандартная функция mkdir(), но в большинстве случаев она оказывается безполезной и многие об этом знают, но не многие знают, что обойти эту проблему можно.
Все очень просто, нужно создавать папки с помощью встроенных в php функций FTP.
Ниже пишу об этом подробнее.


Проблемы с mkdir() при создании папки.
Как известно, если в php включен безопасный режим (safe_mode = on), то создавать папки(директории) с помощь mkdir() не получится. Если сказать точнее, то создать можно, а вот дальнейшее использование этой папки будет невозможным. Вы не сможете грузить файлы в эту папку, переименовывать ее и удалить ее не сможете, даже зайдя через FTP (в некоторых случаях через FTP удалить можно).

Безопасный режим включен по умолчанию на всех серверах и всех хостингах. Если у вас нет возможности отключить безопасный режим, то есть другой выход.


Создание папок в php с помощью FTP.
Почти на всех серверах и хостингах в php включена поддержка ftp.
Вот с помощью этих функций и обойдем проблему создания папки mkdir().
Пример создания папки через FTP.

<?
$conn_id
= @ftp_connect('ftp.server.ru', 21, 5); // коннектимся к серверу FTP
if($conn_id) // если соединение с сервером прошло удачно, продолжаем
{
    
$login_result = @ftp_login($conn_id, 'user', 'pass'); // вводим свои логин и пароль для FTP
    
if($login_result) // если сервер принял логин пароль, идем дальше
    
{
        
// теперь нужно поиграть с пассивным режимом, включить его или выключить(TRUE, FALSE)
        // если дальнейшие функции ftp будут работать не правильно, пробуйте менять этот параметр (TRUE или FALE)
        
ftp_pasv ($conn_id, TRUE); // в данном случае пассивный режим включен
        
ftp_mkdir ($conn_id, '1/2/3'); // ну и само создание папки
    
}
}
ftp_close($conn_id); // и закрываем коннект с FTP
?>

Теперь не большой комментарий к коду.
В первой строке происходит коннект в серверу FTP. Обычно, чтобы законнектиться к локальному FTP серверу достаточно указать localhost в качестве сервера, но можно и полностью указать адрес.
Пассивный режим включить или выключить зависит от настроек FTP.

При создании папки будте внимательны, папка создается от корня входа в FTP. То есть пути тут отличаются от путей файловой системы и папка создается так, как видно именно через FTP.
Если при создании папки вы указываете несколько вложений, как в моем примере "1/2/3", то в этом случае будут созданы все недостающие папки. Если нет папки "1", она будет создана, а в ней будет создана папка "2", а в ней будет создана папка "3". Если промежуточные папки уже существуют, то созданы будут только недостающие.
Перед созданием папки можно переместиться в какую либо папку, например

<? ftp_chdir ($conn_id, '1'); ?>
И после этой функции можно создать папку. Если путь к папке указать '2/3' без начального слэша, тогда папка будет создаваться относительно той папки, в которой сейчас находимся. То есть создана будет папка '1/2/3'

<? ftp_mkdir ($conn_id, '2/3'); ?> 
Если при создании папки указать начальный слэш (/1/2/3), то папка будет создана от корня FTP, независимо от того, в какую папку переместились.





   Новости сайта
Сайт сменил движок

Наш сайт переехал на новый движок. Который скоро появится в общем доступе для всех желающих.


Copyright © 2003-2009 WeBi Constructor

В избранное