Дополнительно
Создайте папку, если она еще не существует
Я'столкнулся с несколькими случаями установки WordPress на Bluehost, когда я'столкнулся с ошибками в моей теме WordPress из-за отсутствия папки uploads wp-content/uploads
.
По-видимому, программа установки WP cPanel Bluehost не создает эту папку, хотя HostGator создает.
Поэтому мне нужно добавить код в мою тему, который проверяет наличие папки и создает ее в противном случае.
603
16
Попробуйте это:
Обратите внимание, что
0777
уже является режимом по умолчанию для каталогов и все еще может быть изменен текущей umask.Вот недостающий кусок. Вам нужно пройти 'рекурсивный' флаг в качестве третьего аргумента (значение true) в команды mkdir вызова такой:
Что-то более универсальное, поскольку это всплывает в Google. Хотя детали более конкретны, название этого вопроса более универсально.
Это возьмет путь, возможно, с длинной цепочкой несозданных каталогов, и будет продолжать подниматься вверх по одному каталогу, пока не доберется до существующего каталога. Затем он попытается создать следующий каталог в этом каталоге, и так до тех пор, пока не создаст все каталоги. В случае успеха возвращается true.
Может быть улучшена путем обеспечения уровня остановки, чтобы она просто терпела неудачу, если выходит за пределы папки пользователя или чего-то подобного, а также путем включения разрешений.
Как насчет вспомогательной функции вроде этой:
Она вернет
true
, если каталог был успешно создан или уже существует, иfalse
, если каталог не может быть создан.Более лучшей альтернативой является следующая (не должно выдавать никаких предупреждений):
Быстрый способ создания папки:
Рекурсивно создать каталог:
Вдохновленный Python'ы
ОС.makedirs()
В WordPress есть's также очень удобная функция wp_mkdir_p, который будет рекурсивно создать структуру каталогов.
Источник для справки:-
Мне нужно то же самое для сайта логин. Мне нужно создать каталог с двумя переменными. Долларов каталог является основной папке, где я хотел создать еще одну подпапку с номером лицензии.
Это самое современное решение без подавления ошибок:
Вы можете попробовать также:
Если вы хотите избежать проблемы
file_exists
противis_dir
, я хотел бы предложить вам посмотреть здесьЯ попробовал это, и это только создает каталог, если каталог не существует**. Его не волнует, он существует файл с таким именем.
Чтобы создать папку, если она не'т уже существуют
Рассматривая вопрос'ы окружающей среды.
И цитирую: http://php.net/manual/en/function.mkdir.php
Руководство говорит, что единственный обязательный параметр
$путь
!таким образом, мы можем просто код:
Объяснение:
Мы не'т иметь, чтобы передать какой-либо параметр или проверить, существует ли папка или даже передать параметр режим, если требуется; по следующим причинам:
режим
игнорируется на Windows хостинг используете PHP.команды mkdir
имеет строение в Проверка существует ли папка; поэтому мы должны проверить возвращаемое только истина|ложь, и не ошибка, а только предупреждение, и предупреждения отключен на серверах по умолчанию.Это просто другой способ взглянуть на этот вопрос и не претендует на лучше или наиболее оптимальное решение.
Проверено на PHP7, производственная сервера Linux
Мы всегда должны modularise наш код и я'вэ написано же проверить его ниже... Мы сначала проверяем каталога, если каталог отсутствует, то создайте каталог.
Сначала нужно проверить, если каталог существует.
file_exists('путь_к_папке')
Затем использовать команду mkdir(путь_к_папке) для создания каталога
Подробнее о функция mkdir() здесь
Вот полный код: