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);
?>

Пожалуйста, опубликуйте ваши комментарии по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, отклики, дизлайки, лайки, подписки!

Пожалуйста, опубликуйте свои мнения по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, лайки, дизлайки!

СМСергей Марочканичавтор статьи «PHP mkdir() Function»