Основы работы с директориями в PHP. Как происходят типовые операции?

основы работы с директориями в php. как происходят типовые операции?

Базовые принципы

В зависимости от типа используемой файловой системы низкоуровневая реализация директорий заметно различается. Однако в общих чертах лучше воспринимать директории как файлы, хранящие в себе метаинформацию о других файлах и каталогах. Они участвуют в политике безопасности за счет назначения прав доступа, их можно создавать, перемещать и удалять, на них устанавливаются символические ссылки и т.д.

Интерпретатор PHP, следуя принципам кроссплатформенности, реализует единые механизмы работы с директориями. Они не зависят от операционной или файловой системы. Один и тот же программный код будет работать и в Windows, и в Linux.

//получаем дескриптор каталога и читаем из него
//названия содержащихся файлов
$descriptor = opendir('/home/user-name');

if ($descriptor) {
    while (($file = readdir($descriptor)) !== false) {
        echo "$file<br>";
    }
    closedir($descriptor);

} else {
    echo 'Невозможно открыть директорию';
}

Пример, приведенный выше, демонстрирует извлечение имён файлов, содержащихся в заданном каталоге. Обратите внимание, что работа с директориями в PHP строится по аналогии с файлами. Мы получаем дескриптор директории, читаем из него информацию, а затем закрываем.

Заметка
Функции readdir(), opendir(), closedir() а также механизм их использования будут рассмотрены более детально в данном учебном курсе. Эта статья является вводной и дает общее представление по использованию директорий.

Проблемы прав доступа

Правила безопасности диктуются на уровне операционной системы. На некоторые их аспекты невозможно влиять из программы. Практически все функции, встроенные в PHP, либо возвращают логическое значение false, либо выбрасывают исключения, в случае невозможности осуществления файловой операции.

Чаще всего интерпретатор PHP является модулем Apache, поэтому работа с директориями происходит от имени пользователя, под которым запущен веб-сервер. Вы должны учитывать данный факт.

Последние публикации