Интерфейс с файловой системой
Проверка отдельных характеристик файлов
Операции с содержимым файлов
Операции с конвейерами
Специальные и необычные функции
В этом разделе мы рассмотрим функции, ориентированные на проверку отдель-
ных характеристик файлов.
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.
|