26.5. PHP: Определение атрибутов файлов
Атрибут — признак ил и свойство, характеризующее объект.
Каждый файл имеет свой набор атрибутов (исполнимость, читаемость, изменяемость и т. д.). В данном параграфе рассмотрены следующие функции получения атрибутов:
• is_dir(),
• is_executable(),
• is_file(),
• is_link(),
• is_readable(),
• is_writeable().
Эти функции практически одинаковы по принципу работы и синтаксису, поэтому сначала опишем общие принципы работы этих функции, а затем расскажем, для чего каждая из функций применяется.
Обратите внимание, что все возвращаемые значения этих строк сохраняются в хэше.
При возникновении какой-либо ошибки каждаяих этих функции вернет значение, равное false.
Все функции, кроме is_file(), не производят работу с удаленными файлами.
ВНИМАНИЕ
Функция is_link() не работает в операционной системе Windows.
При работе с функцией is_readable() и is_writeable() помните, что РНР может иметь доступ к файлу как пользователь, под чьим id запущен Web-сервер (часто 'nobody').
Описываемые функции подчиняются следующему синтаксису:
bool is_dir (string filename)
Для примера использована функция is_dir(), хотя на ее месте может быть любая другая из приведенного списка функций. Все функции возвращают булевый тип (true или false), в качестве параметра filename применяется путь к исследуемому файлу.
Теперь опишем каждую функцию в отдельности:
is_dir() возвращает true, если заданный путь указывает на каталог, т. е. если параметр filename является каталогом, функция is_dir() возвратит true, в противном случае — false. Например:
is_dir("Z:/home/localhost/www");
проверяет, относится ли файл к классу исполнимых, если да, то возвращает true, иначе — false.
is_file() проверяет, относится ли файл к классу обычных файлов. Функция возвращает true, если указанный файл является обычным и существует. В противном случае — false.
is_link() проверяет, относится ли файл к символическим ссылкам. Если указанный файл является символической ссылкой, функция возвратит true, в противном случае — false.
проверяет, относится ли файл к классу Если файл
ствует и является доступным для чтения, функция возвращает значение true, в противном случае — false.
is_writeable() проверяет, относится ли файл к классу записываемых. Функция возвратит true, если указанный файл в этой функции существует и доступен для записи, в противном случае — false.
Описанные здесь функции используются в РНР 3 и РНР 4.
В качестве исключения необходимо выделить функцию is_writable(), которая работает в РНР 4 - РНР 4.0b2 и выше.