stat
Функция собирает вместе всю информацию, выдаваемую операционной системой для указанного файла, и возвращает ее в виде массива.
Синтаксис:
array stat(string $filename)
Этот массив всегда содержит следующие элементы с указанными ключами:
0 - устройство;1 - Номер узла inode;2 - атрибуты защиты файла;3 - число синонимов ("жестких" ссылок) файла;4 - идентификатор uid владельца;5 - идентификатор gid группы;6 - тип устройства;7 - размер файла в байтах;8 - время последнего доступа в секундах, прошедших с 1 января 1970 года;9 - время последней модификации содержимого файла;10 - время последнего изменения атрибутов файла;11 - размер блока;12 - число занятых блоков;Этот массив помещает информацию, которая доступна в системах Unix. Под Windows многие поля могут быть пусты.
Если $filename задает не имя файла, а имя символической ссылки, то всетаки будет возвращена информация о том файле, на который ссылается эта ссылка (а не о ссылке).
fileatime
Возвращает время последнего доступа к файлу.
Синтаксис:
int fileatime(string filename)
Время выражается в количестве секунд, прошедших с 1 января 1970 года (Unix timestamp). Если файл не обнаружен, возвращает false.
Атрибут времени последнего доступа к файлу изменяется каждый раз, когда данные файла читаются. Так как это сильно снижает производительность при интенсивной работе с файлами и каталогами, часто изменение этого атрибута в операционных системах блокируют, и тогда функция бесполезна.
|
|
filemtime
Возвращает время последнего изменения файла или false в случае отсутствия файла.
Синтаксис:
int filemtime(string $filename)
filectime
Возвращает время создания файла.
Синтаксис:
int filectime(string $filename)
filesize
Возвращает размер файла в байтах или false, если файла не существует.
Синтаксис:
int filesize(string $filename)
touch
Устанавливает время модификации.
Синтаксис:
int touch(string $filename [, int $timestamp])
Устанавливает время модификации указанного файла $filename равным $timestamp (в секундах, прошедших с 1 января 1970 года). Если второй параметр не указан, то подразумевается текущее время. Вслучае ошибки возвращает false.
Если файл с указанным именем не существует, он создается пустым.
Функции для работы с именами файлов
basename
Выделяет имя файла из пути.
Синтаксис:
string basename(string $path)
Выделяет основное имя из пути $path
Примеры:
Функция basename() не проверяет существование файла. Она просто берет часть строки после самого правого слеша и возвращает ее.
Эта функция правильно обрабатывает как прямые, так и обратные слеши под Windows.
|
|
dirname
Выделяет имя каталога.
Синтаксис:
string dirname(string $path)
Возвращает имя каталога, выделенное из пути $path. Функция довольно "разумна" и умеет выделять нетривиальные ситуации, которые описаны в примерах:
echo dirname("/home/file.txt"); // выводит "/home"echo dirname("../file.txt"); // выводит ".."echo dirname("/file.txt"); // выводит "/" под Unix, // "\" под Windowsecho dirname("/"); // то же самоеecho dirname("file.txt"); // выводит "."Если функции dirname() передать просто имя файла, она вернет ".", что означает "текущий каталог".
tempnam
Генерирует уникальное имя файла в определенном каталоге.
Синтаксис:
string tempnam(string $dir, string $prefix)
Генерирует имя файла в каталоге $dir с префиксом $prefix в имени, причем так, чтобы созданный под этим именем в будущем файл был уникален.
Для этого к строке $prefix присоединяется некое случайное число.
Например, вызов tempnam("/tmp","temp") может возвратить /tmp/temp3a6b243c.
Если такое имя нужно создать в текущем каталоге, передайте $dir="."
realpath
Преобразует относительный путь в абсолютный.
Синтаксис:
string realpath(string $path)
Преобразует относительный путь $path в абсолбтный, т.е. начинающийся от корня.
Пример:
Файл, который указан в параметре $path, должен существовать, иначе функция фозвратит false.
Функции манипулирования целыми файлами
copy
Копирует файл.
Синтаксис:
bool copy(string $src, string $dst)
Копирует файл с именем $src в файл с именем $dst. При этом, если файл $dst на момент вызова существовал, осуществляется его перезапись.
Функция возвращает true, если копирование прошло успешно, а в случае провала - false.
Функция не выполняет переименования файла, если его новое имя расположено в другой файловой системе (на другой смонтированной системе в Unix или на другом диске в Windows).
unlink
Удаление файла.
Синтаксис:
bool unlink(string $filename)
Удаляет файл с именем $filename. В случае неудачи возвращает false, иначе - true.
Надо заметить, что файл удаляется только в том случае, если число "жестких" ссылок на него стало равным 0. Правда, эта схема специфична для Unix-систем.
file
Считывает файл и разбивает его по строкам.
Синтаксис:
list file(string $filename)
Считывает файл с именем $filename целиком и возвращает массив-список, каждый элемент которого соответствует строке в прочитанном файле.
Неудобство этой функции состоит в том, что символы конца строки (обычно \n), не вырезаются из строк файла, а также не транслируются, как это делается для текстовых файлов.
Другие функции
ftruncate
Усекает файл.
Синтаксис:
bool ftruncate(int $f, int $newsize)
Эта функция усекает открытый файл $f до размера $newsize. Разумеется, файл должен быть открыт в режиме, разрешающим запись.
Например, следующий код очищает весь файл:
ftruncate($f,0);
fflush
Немедленная запись всех изменений в файле.
Синтаксис:
void fflush(int $f)
Заставляет PHP немедленно записать на диск все изменения, которые производились до этого с открытым файлом $f. Что это за изменения? Дело в том, что для повышения производительности все операции записи в файл буферизируются: например, вызов fputs($f, "Это строка!") не приводит к непосредственной записи данных на диск - сначало они попадают во внутренний буфер (обычно размером 8К). Как только буфер заполняется, его содержимое отправляется на диск, а сам он очищается, и все повторяется вновь. Особенный выигрыш от буферзации чувствуется в сетевых операциях, когда просто глупо отправлять данные маленькими порциями.
set_file_buffer
Устанавливает размер буфера.
Синтаксис:
int set_file_buffer(int $f, int $size)
Эта функция устанавливает размер буфера, о котором говорилось выше, для указанного открытого файла $f.
Чаще всего она используется так:
|
|
set_file_buffer($f,0);
Приведенный код отключает буферизацию для указанного файла, так что теперь все данные, записываемые в файл, немедленно отправляются на диск или в сеть.
flock
Блокирование файла.
Синтаксис:
bool flock(int $f, int $operation [, int $wouldblock])
Функция устанавливает для указанного открытого дескриптора файла $f режим блокировки, который бы хотел получить текущий процесс. Этот режим задается аргументом $operation и может быть одной из следующих констант:
· LOCK_SH (или 1) - разделяемая блокировка;· LOCK_EX (или 2) - исключительная блокировка;· LOCK_UN (или 3) - снять блокировку;· LOCK_NB (или 4) - эту константу нужно прибавить к одной из предыдущих, если вы не хотите, чтобы программа подвисала на flock() в ожидании своей очереди, а сразу возвращала управление.В случае, если был затребован режим без ожидания, и блокировка не была успешно установлена, в необязятельный параметр-переменную $wouldblock будет записано значение истина true.
В случае ошибки функция возвращает false, а в случае успешного завершения - true.