При написании скриптов на языке PHP не редко требуется выполнять различные операции с директориями. Директории (они же — папки и каталоги) позволяют структурировать и упорядочивать файлы на устройстве. Для работы с каталогами в языке PHP имеются встроенные функции.
Получение списка файлов и директорий
Получить содержимое каталога можно используя функцию glob()
Функция имеет два параметра:
$pattern (обязательный): шаблон поиска
$flags (опциональный): один или несколько флагов, описание которых можно найти в документации
Рассмотрим примеры.
Для поиска в директории всех файлов и директорий, имена которых заканчиваются на .php, следует использовать код:
$filelist = glob("*.php");
Если вывести переменную $filelist, то получим:
array ( 0 => 'article.php', 1 => 'text.php' )
Если нужен список файлов и директорий, имена которых начинаются на “po”, то код будет выглядеть так:
$filelist = glob("po*");
Функция glob() появилась в 4 версии PHP. В более ранних версиях можно использовать функцию readdir(). Она используется совместно с функциями opendir()
, и closedir().
Создание директорий
С самых ранних версий PHP для создания директорий использовалась функция mkdir().
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
Функция пытается создать директорию, заданную в pathname.
$pathname
Путь к директории.
$mode
По умолчанию принимает значение 0777, что означает самые широкие права. Больше информации о режимах доступа можно узнать на странице руководства функции chmod().
Замечание:
Аргумент mode игнорируется в Windows.
Обратите внимание, что аргумент mode необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль). На аргумент mode также влияет текущее значение umask, которое можно изменить при помощи umask().
$recursive
Разрешает создание вложенных директорий, указанных в pathname.
$context
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Пример использования функции mkdir()
mkdir("/path/to/my/dir", 0700);