PHP-4 Эффективная работа


Интерфейс с файловой системой
Проверка отдельных характеристик файлов
Операции с содержимым файлов
Операции с конвейерами
Специальные и необычные функции

10.2. Проверка отдельных характеристик файлов

В этом разделе мы рассмотрим функции, ориентированные на проверку отдель- ных характеристик файлов.

10.2.1. Проверка наличия файла: file_exists

bool file_exists (string filename)

Возвращает true, если файл, указанный аргументом filename, присутствует в системе, в противном случае возвращает false.

С удаленными файлами эта функция не работает. Вы можете применять ее только к локальной файловой системе. Результаты работы функции кэшируются. Для обновления информации необходимо использовать вызов clearstatcache() (раздел 10.1.5).

10.2.2. Время последнего доступа: fileatime

int fileatime (string filename)

Функция возвращает время последнего обращения к файлу в виде метки времени в формате UNIX или false — при возникновении ошибки. Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает. Вы можете применять ее только к локальной файловой системе.

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

10.2.3. Время изменения файла по mode:filectime

int filectime (string filename)

Возвращает время последнего изменения файла в формате метки времени UNIX или false — при возникновении ошибки. Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcacheO (см. раздел 10.1.5). С удаленными файлами эта функция не работает. Вы можете применять ее только к локальной файловой системе.

10.2.4. Считывание групповой принадлежности:filegroup

int filegroup (string filename)

Возвращает числовой идентификатор группы, к которой принадлежит файл, или false — в случае возникновения ошибки. Поскольку идентификатор возвращается в числовом формате, для получения строкового обозначения группы необходимо использовать функцию posix_getgrgid(). Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает. Вы можете применять ее только к локальной файловой системе.

совет
       В Windows эта функция не работает.

10.2.5. Считывание данных inode: fileinode

int fileinode (string filename)

Функция возвращает номер inode-узла данного файла или false — в случае возникновения ошибки. Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcacheO (см.раздел 10.1.5). С удаленными файлами эта функция не работает; вы можете применять ее только к локальной файловой системе.

совет
       В Windows эта функция не работает.

10.2.6. Время модификации файла: filemtime

int filemtime (string filename)

Функция возвращает временную метку в формате UNIX последней модификации файла либо false — в случае возникновения ошибки. Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcacheO (см. раздел 10.1.5). С удаленными файлами эта функция не работает; вы можете применять ее только к локальной файловой системе.

10.2.7. Владелец файла: fileowner

int fileowner (string filename)

Возвращает идентификатор пользователя владельца файла либо false — в случае возникновения ошибки. Идентификатор возвращается в виде числа, и для преобразования его в имя пользователя вы можете воспользоваться функцией posix_getpwuid().

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

совет
       В Windows эта функция не работает.

10.2.8. Права доступа к файлу: fileperms

int fileperms (string filename)

Возвращает права доступа к заданному файлу в виде числа либо false — при возникновении ошибки. Для анализа полученного значения имеет смысл использовать битовые маски.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clears t a tcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

совет
       В Windows эта функция не работает.

10.2.9. Размер файла: filesize

int filesize (string filename)

Функция возвращает размер файла в байтах или false — в случае возникновения ошибки.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.10. Определение типа файла: filetype

string filetype (string filename)

Функция возвращает тип файла. К числу возможных результатов относятся: fifо, char, dir, block, link, file и unknown. В случае возникновения ошибки функция возвращает false.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.11. Указывает ли файл на каталог: is_dir

bool is_dir (string filename)

Возвращает true, если заданный файл существует и является каталогом.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.12. Является ли файл исполняемой программой: is_executable

bool is_executable (string filename)

Возвращает true, если указанный файл существует и представляет собой испол- няемую программу.

совет
       Это означает, что для данного пользователя (или группы, к которой он принадлежит) установлен бит х в правах доступа данного файла. <

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcacheO (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.13. Это обычный файл: is_file

bool is_file (string filename)

Функция возвращает true, если файл с указанным именем существует и представляет собой обычный файл.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcacheO (см. раздел 10.1.5). См. также описания is_dir() (раздел 10.2.11) и is_link() (раздел 10.2.14).

10.2.14. Является ли файл ссылкой: isjink

bool is_link (string filename)

Возвращает true, если файл с указанным именем существует и представляет собой символьную ссылку (синоним).

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache () (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.15. Доступность для чтения: is_readable

bool is_readable (string filename)

Возвращает true, если файл с указанным именем существует и доступен для чтения.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.16. Доступность для записи: is_writable

bool is_writable (string filename)
bool is_writeable (string filename)

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

В РНР поддерживаются оба показанных выше варианта имени этой функции.

Результат работы функции кэшируется. Для обновления информации необходимо использовать вызов clearstatcache() (см. раздел 10.1.5). С удаленными файлами эта функция не работает, вы можете применять ее только к локальной файловой системе.

10.2.17. Загружен ли файл: is_uploaded_file

bool is_uploaded_file (string filename)

Возвращает true, если файл с указанным именем был загружен извне посредством операции HTTP POST. Как правило, эта функция используется для проверки данных, вводимых пользователем, чтобы предотвратить хамские попытки взлома сервера путем подстановки собственных версий, например /etc/passwd.

назад
далее

Сайт управляется системой uCoz