PHP / 19. Каталоги

Файловая система хранит не только фактическое содержимое файлов, но и массу дополнительной информации о них. В том числе такие подробности, как размер и права доступа к файлу, каталог, где он находится. При работе с файлами, возможно, потребуется манипулировать этими метаданными. PHP предоставляет множество функций для чтения и обработки каталогов, содержимого каталогов и атрибутов файлов. Как и другие разделы PHP, связанные с файлами, эти функции с некоторыми упрощениями подобны C-функциям, решающим те же самые задачи. Файлы организуются с помощью индексных узлов, или i-узлов (inodes). Каждый файл (и другие части файловой системы, такие как каталоги, устройства и ссылки) имеет свой собственный i-узел, содержащий указатель на местоположение блоков данных файла, а также на всю метаинформацию об этом файле. Блоки данных каталога содержат имена файлов, хранящихся в этом каталоге, и i-узел каждого файла.
Статьи раздела '19. Каталоги':
Изменение прав доступа к файлу или его владельца
Задача Необходимо изменить права доступа к файлу или его владельца. Например, надо не дать возможности другим пользователям увидеть закрытые данные, хранящиеся в файле. Решение Для изменения прав доступа к файлу применяется ф...
Копирование и перемещение файла
Задача Необходимо скопировать или переместить файл. Решение Для копирования файла применяется функция copy(): copy($old,$new) or die("couldn't copy $old to $new: $php_errormsg"); А функция rename() позволяет перемещать ...
Обработка всех файлов в каталоге
Задача Необходимо выполнить цикл по всем файлам в каталоге. Например, требуется создать элемент select в форме, содержащей список всех файлов в каталоге. Решение Получите дескриптор каталога с помощью функции opendir(), а зат...
Обработка всех файлов в каталоге
Задача Необходимо что-нибудь сделать со всеми файлами в каталоге и в любых его подкаталогах. Решение Функция pc_process_dir(), показанная в примере 19.1, возвращает список всех файлов в данном каталоге и ниже. Пример 19.1....
Получение и установка меток даты/времени файла
Задача Необходимо узнать время последнего изменения или доступа к файлу либо обновить время доступа или изменения; например, вы хотите показать время последнего изменения каждой страницы вашего веб-сайта. Решение Функции file...
Получение информации о файле
Задача Необходимо прочитать метаданные файла, например права доступа и имя владельца. Решение Вызовите функцию stat(), которая возвращает массив информации о файле: $info = stat('harpo.php'); Обсуждение Функция stat() ...
Получение списка имен файлов, соответствующих шаблону
Задача Необходимо найти все имена файлов, соответствующие шаблону. Решение Если шаблон представляет собой регулярное выражение, то прочитайте каждый файл из каталога и проверьте его имя с помощью функции preg_match(): $d =...
Программа: Перечень каталогов веб-сервера
Программа web-ls.php, показанная в примере 19.4, выводит сведения о файлах корневого каталога документов веб-сервера, отформатированные аналогично выводу UNIX-команды ls. Ссылки на имена файлов выполнены так, чтобы можно было загр...
Программа: Поиск сайта
Программу site-search.php, показанную в примере 19.5, можно использовать как поисковую машину для сайтов от малого до среднего размеров, основанных на файлах. Программа ищет условия поиска (в $_REQUEST['term']) во всех файлах в пр...
Разделение имени файла на составляющие
Задача Необходимо определить путь к файлу и его имя; например, требуется создать файл в том же каталоге, в котором находится существующий. Решение Для выделения имени файла применяется функция basename(), а функция dirname() ...
Создание новых каталогов
Задача Необходимо создать каталог. Решение Это делается при помощи функции mkdir():mkdir('/tmp/apples',0777) or die($php_errormsg); Обсуждение Второй аргумент функции mkdir() – это режим доступа к новому каталогу, который...
Удаление каталога и его содержимого
Задача Необходимо удалить каталог и все его содержимое, включая подкаталоги и их содержимое. Решение В UNIX надо выполнить команду rm: $directory = escapeshellarg($directory); exec("rm -rf $directory"); В Windows – коман...
Удаление файла
Задача Необходимо удалить файл. Решение Это делается при помощи функции unlink(): unlink($file) or die ("can't delete $file: $php_errormsg"); Обсуждение Функция unlink() может удалять только те файлы, которые может уда...

Страницы: 1