Работа с каталогами в PHP


Работа с каталогами в PHP Мы с Вами уже работали с файлами в PHP. И теперь я решил затронуть тему работы с каталогами в PHP. В этой статье Вы научитесь создавать каталоги в PHP, удалять их и считывать из них файлы и подкаталоги. Начнём с самого простого: создание каталога в PHP: <?php mkdir("new_dir"); ?> После запуска этого скрипта у Вас будет создан пустой каталог "new_dir". Удалить пустой каталог очень просто. Для этого используется функция rmdir(). <?php rmdir("new_dir"); ?> А вот теперь перейдём к работе с содержимым каталогов через PHP. Здесь есть очень простые правила, которые необходимо соблюдать. Все эти правила очень логичны, и Вы их применяете, когда вручную просматриваете содержимое каталогов: Открыть каталог. Считать содержимое. Закрыть каталог. Чтобы не мучить Вас в ожиданиях, сразу приведу код, который выводит имена файлов и категорий внутри заданного каталога: <?php $dir = opendir("images"); while (($f = readdir($dir)) !== false) echo $f."<br />"; closedir($dir); ?> В результате Вы увидите список всех файлов и каталогов внутри каталога "images". Также Вы увидите два интересных имени "." и "..". Первый означает "текущий каталог", а ".." - родительский. Теперь подробно о функциях, используемых в этом примере: Функция opendir(string $path) - открывает каталог, находящийся по пути $path, а также возвращает дескриптор, необходимый для работы с этим каталогом. Функция readdir(resource $dir) - считывает текущий элемент в каталоге dir. Текущий элемент задаётся указателем, который сдвигается при каждом вызове. Поэтому получается, что каждый раз эта функция возвращает новый элемент из каталога. Когда все элементы закончились, то функция readdir() возвращает false. Функция closedir(resource $dir) - закрывает каталог dir. Это все самые важные функции для работы с каталогами в PHP. Однако, хочется добавить ещё одну очень важную деталь по поводу функции rmdir(), которая удаляет каталог. Если Вы внимательно читали, то я написал, что эта функция удаляет "пустой каталог", то есть в котором нет ни одного файла и каталога (кроме "." и ".."). Другими словами, если в каталоге будет хотя бы один файл, то функция rmdir() не сработает. Вот как решить эту проблему Вы узнаете в следующей статье, поэтому подписывайтесь на обновления, чтобы не пропустить её появление.