PHP-функция mkdir()
Функция PHP mkdir() применяется для создания каталога, заданного в pathname. Каталог создается со значением режима доступа по умолчанию 0777.
Синтаксис:
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
Пример использования функции mkdir ():
<?php
mkdir("stories");
?>
Возвращаемое значение. Эта функция возвращает значение TRUE в случае удачного завершения или FALSE при возникновении ошибки.
Дополнительная информация. Эта функция выдает ошибку уровня E_WARNING, если директория уже существует. Предупреждение также выдается, если соответствующие разрешения предотвращают создание каталога и PHP mkdir не работает.
Версия PHP. Функция mkdir () доступна в PHP 4, PHP 5, PHP 7.
Релевантные функции. is_dir() - указывает, является ли имя файла каталогом. rmdir() – удаляет каталог.
Параметры
pathname
Параметр pathname используется для указания пути к каталогу. Это обязательный параметр.
mode
Параметр mode задает режим доступа к директории. Значением по умолчанию является 0777, что обеспечивает максимально возможный доступ. Этот параметр является необязательным.
Необходимо помнить, что параметр mode игнорируется в Windows.
recursive
Разрешает создание вложенных каталогов в указанном пути. Этот параметр является необязательным. Он был добавлен в PHP 5.
context
Используется для указания контекста дескриптора файла. Контекст — это набор опций, которые могут изменять поведение потока. Он был добавлен в PHP 5. Этот параметр PHP mkdir() также является необязательным.
Примеры
Примеры использования функции mkdir ():
<?php
mkdir("/path/to/my/files", 0700);
?>
Здесь параметр recursive используется для создания вложенных каталогов.
<?php
$structure = 'users/amanda/assignments/';
// Вывод: успешно созданы вложенные каталоги...
if (!mkdir($structure, 0777, true)) {
echo 'Failed to create folders...';
} else {
echo 'Succesfully created nested directories...';
}
?>
Советы
Вот несколько:
При использовании PHP mkdir recursive следует помнить, что, применяя chmod() после mkdir (), чтобы задать режим, не изменяя его значением uchar(), необходимо вызвать chmod() во всех созданных каталогах. Например:
<?php
mkdir('/test1/test2', 0755, true);
chmod('/test1/test2', 0777);
?>
Приведенный выше код может привести к результату «/test1/test2» с режимом 0777, но «/test1» по-прежнему имеет режим 0755 от вызова mkdir(). Необходимо указать:
<?php
mkdir('/test1/test2', 0755, true);
chmod('/test1', 0777);
chmod('/test1/test2', 0777);
?>