Продолжаем тему создания папок в PHP.
Судя по тому, как нас ищут, создание папок даже без SAFE MODE является нетривиальной задачей.
Ответ: mkdir().
Подсказка: php-скрипт должен иметь нужные права записи (chmod 0777 на папку, в которой собираемся создавать папку, решает большинство из возникающих проблем, но так не безопасно).
А вот второй по популярности пост из старого блога. Написано больше трёх лет назад.
Слишком часто я слышу эту фразу последнее время. Очень много PHP-программистов вокруг. Просто эпидемия.
Из моего собственного скромного опытного рекрутинга веб-программистов: в 50% случаев эта фраза подразумевает, что “программист” освоил три тега html и выучил две команды PHP: echo и mysql_query.
При этом из теории баз данных он знает только слово SQL, и путается с выбором средства для реализации задачи: то ли тут можно обойтись JavaScriptом, то ли всё-таки надо писать PHP. На написание скрипта, генерирующего картинку на лету и встраивание этой картинки в другой скрипт у этой особи уходит два дня, первые полтора из них он пытается всунуть всё в один файл. Сдавшись, лезет с бестолковыми вопросами, вместо того, чтобы прочитать fucking manual.
PHP - язык высокого уровня. PHP-программисту не надо обращать особое внимание на элементарные операции: работу с памятью, обработку ошибок и сортировку. Практически для всего есть готовые функции. Если, не дай бог, нет - то можно потратить полдня на поиск нужного класса в интернете, вместо того, чтобы написать свой за 2 часа, немного порисовав на бумаге.
PHP позволяет писать на PHP и не думать. За тебя уже подумали. Взял переменную, засунули в базу, вывел html. Всё.
Программировать на C++ гораздо сложнее. Надо уметь работать с памятью, мучаться со строками и работать с массивами на низком уровне.
Входная планка для PHP гораздо ниже. Три тега, два оператора - и добро пожаловать в мир веб-программинга. Это очень обесценивает профессию. Большинство PHP-программистов - это кодеры, а не девелоперы. Кодеры не умеют мыслить концептуально и творить. Они могут действовать по шаблону. Тут взяли, сюда положили, здесь вывели.
Девелопер - это по сути хакер. Хакер не в опошленном смысле слова (который всё ломает), а в смысле творец.
Будьте скромнее, господа PHP-программисты. Не путайте божий дар с яичницей.
Задача: создавать с помощью PHP скрипта такие директории, в которых можно потом создавать файлы с помощью того же скрипта.
Условие, без которого задача тривиальна: PHP работает в Safe Mode.
Без Safe Mode всё работает прекрасно, главное не забывать делать chmod новым файлам, чтобы иметь возможность удалить их вручную (по ftp/sftp). В Safe Mode директории создаются без проблем, а вот при попытке записать в такую директорию файл PHP выдаёт такой warning:
SAFE MODE Restriction in effect. The script whose uid is 529 is not allowed to access /home/website/autofolder owned by uid 48 in /home/website/script.php on line XX
И никакого файла, естественно, не создаёт.
Решение: создавать нужные папки с помощью ftp-функций: ftp_connect, ftp_login, ftp_mkdir. Законнектились, сделали папку, отвалились.