| |
о, возвращается true.
Глава 15. Работа с файлами 259
Функция не выполняет переименование файла, если его новое имя располо-
жено в другой файловой системе (на другой смонтированной системе в Unix
или на другом диске в Windows). Так что никогда не используйте rename()
для получения загруженного по HTTP файла (о загрузке подробно рассказано
в пятой части книги) — ведь временный каталог /tmp вашего хостинг-
провайдера скорее всего располагается на отдельном разделе диска.
bool unlink(string $filename)
Удаляет файл с именем $filename. В случае неудачи возвращает false, иначе —
true.
На самом-то деле файл удаляется только в том случае, если число "жестких"
ссылок на него стало равным 0. Правда, эта схема специфична для Unix-
систем.
list File(string $filename)
Считывает файл с именем $filename целиком и возвращает массив-список, каждый
элемент которого соответствует строке в прочитанном файле. Функция работает
очень быстро — гораздо быстрее, чем если бы мы использовали fopen() и читали
файл по одной строке. Неудобство этой функции состоит в том, что символы конца
строки (обычно \n), не вырезаются из строк файла, а также не транслируются, как
это делается для текстовых файлов.
array get_meta_tags(string $filename, int $use_include_path=false);
Функция открывает файл и ищет в нем все тэги до тех пор, пока не
встретит-
ся закрывающий тэг . Если очередной тэг имеет вид:
то пара название=>содержимое добавляется в результирующий массив, который
под конец и возвращается. Функцию удобно использовать для быстрого получения
всех метатегов из указанного файла (что работает гораздо быстрее, чем
соответст-
вующее использование fopen() и затем чтение и разбор файла по строкам). Если
необязательный параметр $use_include_path установлен, то поиск файла осущест-
вляется не только в текущем каталоге, но и во всех тех, которые назначены для
поис-
ка инструкциями include и require.
Другие функции
bool ftruncate(int $f, int $newsize)
Часть IV. Стандартные функции PHP 260
Эта функция усекает открытый файл $f до размера $newsize. Разумеется, файл дол-
жен быть открыт в режиме, разрешающем запись. Например, следующий код просто
очищает весь файл:
ftruncate($f,0); // очистить содержимое файла
void fflush(int $f)
Заставляет PHP немедленно записать на диск все изменения, которые производились
до этого с открытым файлом $f. Что это за изменения? Дело в том, что для
повыше-
ния производительности все операции записи в файл буферизируются: например, вы-
зов fputs($f,"Это строка!") не приводит к непосредственной записи данных на
диск — сначала они попадают во внутренний буфер (обычно размером 8K). Как
только буфер заполняется, его содержимое отправляется на диск, а сам он
очищается,
и все повторяется вновь. Особенный выигрыш от буферизации чувствуется в сетевых
операциях, когда просто глупо отправлять данные маленькими порциями. Конечно,
функция fflush() вызывается неявно и при закрытии файла.
int set_file_buffer(int $f, int $size)
Эта функция устанавливает размер буфера, о котором мы только что говорили, для
указанного открытого файла $f. Чаще всего она используется так:
set_file_buffer($f,0);
Приведенный код отключает буферизацию для указанного файла, так что теперь все
данные, записываемые в
|
|