Файловая система
Файлы и сети
🕛 01.11.2006, 13:26
Работа с каталогами basename
Получение компонента файлового имени в пути
string basename (string path)
Возвращает имя файла, выделенного из строки path, представляющей путь к файлу.
В большинстве систем разделителем каталогов в пути служит прямой слеш «/>>. В Windows также может использоваться обратный слеш «\».
Spath = "/home/httpd/html/index.php3":
$file =basename ($path).
// $file is set to "index.php3"
См. также dirname()
dirname
Исключение имени файла из пути
string dirname (string path)
Возвращает строку пути path, из которой исключено имя файла.
В большинстве систем разделителем каталогов в пути служит прямой слеш «/». В Windows также может использоваться обратный слеш «\».
Spath = "/etc/passwd"
Sfile = dirname ($path);
// Sfile is set to "/etc"
См. также basename().
realpath
Исключение сокращений в строке пути
string realpath (string path)
Заменяет все символьные ссылки и сокращения типа: «/./», «/../» (с дополнительными слешами «/») в строке path и возвращает полученный абсолютный путь.
$real_path = realpath
(". /. ./index.php"):
getcwd
Определение текущего каталога
string getcwd(void);
Возвращает текущую директорию, относительно которой проводятся файловые операции.
chdir
Смена текущего каталога
int chdir (string directory)
Возвращает FALSE при ошибке, в противном случае - TRUE.
mkdir
Создание каталога
int mkdir (string pathname, int mode)
Пытается создать новый каталог pathname с атрибутами доступа mode (если они указываются в восьмеричной системе, первой цифрой должен быть ноль).
mkdir ("/path/to/my/chr". 0700).
Возвращает TRUE или FALSE - при ошибке.
См. также rmdirz().
rmdir
Удаление каталога
int rmdir (string dirname)
Пытается удалить каталог dirname. Ката/юг должен быть пустым, и его атрибуты должны позволять это.
При ошибке возвращает 0 (то есть FALSE).
См. также mkdir().
diskfreespace
Определение свободного пространства в каталоге
float diskfreespace (string directory)
Возвращает в байтах свободное пространство в каталоге directory, то есть в соответствующей ей файловой системе или на разделе диска.
$df - diskfreespacet"/");
// свободное место в корневой директории "/"
dir
Класс каталога
new dir (string directory)
Псевдоориентированный механизм для получения списка файлов каталога. При создании объекта на основе класса открывается каталог, указанный directory.
После этого становятся доступны два свойства объекта: дескриптор каталога handle (который может использоваться с функциями readdir(), rewinddir() и closedir()) и строка path, указывающая, какой каталог в настоящий момент используется. У класса имеются три метода: read, rewind и close.
$d = dirC'/etc").
echo "Дескриптор: " .$d->handle."<br>\n".
echo "Путь: " $d->path."<br>\n":
while($entry=Sd->read()) {
// последовательно выводить
echo Sentry."<br>\n".// имя каждого файла. }
// имеющегося в каталоге
$d->close():
opendir
Открытие дескриптора каталога
int opendir (string path)
Возвращает дескриптор открытого каталога path, который затем можно использовать в функциях closedir(), readdir(), rewinddir().
closedir
Закрытие открытого дескриптора каталога
void closedir (int dir_handle)
В аргументе указывается дескриптор каталога, возвращенный функцией opendir ().
readdir
Получение имени следующего файла в списке каталога
string readdir (int dir_handle)
Возвращает имя следующего файла в каталоге. Файлы возвращаются в виде неупорядоченной последовательности.
<?php
$handle=opendir('.').
echo "Directory handle: $handle\n",
echo "FilesAn";
while («file = readdir($handle))
!==FALSE) {
echo "$file\n":
closedir($handle).
Заметьте, что функция также возвращает значения «.» и «..». Если они не требуются, их можно просто исключать: $handle=opendir('.'):
while (FALSE!==
($flie = readdir(Shandle))) { if
(Sfile != "." && Sfile != "..")
{ echo "$file\n".
closedir($handle):
rewinddir
Реинициализация дескриптора каталога
void rewinddir (int dir_handle)
После вызова этой функции функция readdir() с аргументом dir_ hand! e будет возвращать имена файлов с начала в списке каталога.
Получение свойств и атрибутов файлов
file_exists
Проверка существования файла
bool file_exists (string filename)
Возвращает TRUE, если файл, указанный filename, существует; иначе - FALSE. Функция не работает с удаленными файлами, файл должен находиться в доступной для сервера файловой системе.
Результаты функции кэшируются, см. функцию clearstatcache().
is_dir
Проверка существования каталога
bool is_dir (string filename)
Возвращает TRUE, если указанный каталог filename существует. Результаты функции кэшируются, см. функцию clearstatcache().
См. также: is_file() и isJink().
is_executable
Проверка существования запускаемого файла
bool is_executable (string filename)
Результаты функции кэшируются, см. функцию clearstatcache().
См. также: is file() и is link().
is_file
Проверка существования обычного файла
bool is_file (string filename)
Результаты функции кэшируются, см. функцию clearstatcache().
См. также: is_dir() и is_link().
is_ link
Проверка существования символической ссылки на файл
bool isjink (string filename)
Результаты функции кэшируются, см. функцию clearstatcache().
Функция не работает под Windows.
См. также: is_dir() и is_file().
is_eadable
Проверка существования файла, доступного для чтения bool is_readable (string filename)
Обычно PUP осуществляет доступ к файлу с привилегиями пользователя, запускающего web-сервер (часто «nobody»). Соображения безопасности должны приниматься в расчет.
Результаты функции кэшируются, см. функцию clearstatcache().
См. также is_writeable().
is_writeable
Проверка существования файла, доступного для записи
bool is_writeable (string filename)
Обычно PHP осуществляет доступ к файлу с привилегиями пользователя, запускающего web-сервер (часто «nobody»). Соображения безопасности должны приниматься в расчет.
Результаты функции кэшируются, см. функцию clearstatcache().
См. также is_readable().
is_uploaded file
Проверка существования файла, загруженного методом HTTP POST bool is_uploaded_file (string filename)
Возвращает TRUE, если файл с именем filename был загружен на сервер посредством HTTP POST. Часто это полезно, чтобы убедиться, что пользователи из злого умысла не пытались заставить сценарий работать с теми файлами, с которыми им работать не следует, например: /etc/ passwd.
См. также: move_uploaded_file().
filetype
Получение типа файла
string filetype (string filename)
Возможные возвращаемые значения: fifo, char, dir, block, link, file, unknown. В случае ошибки возвращается FALSE.
Результаты функции кэшируются, см. функцию clearstatcache().
fileatime
Получение времени последнего доступа к файлу
int fileatime (string filename)
Возвращает время в формате «Unix timestamp» пли FALSE в случае / ошибки.
Результаты функции кэшируются. см. функцию clearstatcache().
Атрибут времени последнего доступа к файлу изменяется каждый раз, когда данные файла читаются. Так как это сильно снижает производительность при интенсивной работе с файлами и каталогами, часто изменение этого атрибута в операционных системах блокируют, и тогда функция бесполезна.
filemtime
Получение времени последней записи в файл int filemtime (string filename)
Возвращает время в формате «Unix timestamp» или FALSE в случае ошибки.
Результаты функции кэшируются. см. функцию clearstatcache().
Этот атрибут файла отражает последнее изменение самих данных файла (при операциях вывода в файл). Используйте функцию date() для преобразования возвращаемого значения в читабельный формат.
filectime
Получение времени последнего изменения файла
int filectime (string filename)
Возвращает время в формате «Unix timestamp» или FALSE в случае ошибки.
Результаты функции кэшируются, см. функцию clearstatcache().
В большинстве систем изменением файла считается также изменение его атрибутов (например, прав доступа).
См. также: filemtime() и fileatime().
В некоторых системах этот атрибут неправильно рассматривается как время создания файла.
filegroup
Получение группы принадлежности файла
int filegroup (string filename)
Возвращает ID группы владельца файла или FALSE в случае ошибки. Идентификатор группы возвращается в численном формате, используйте posix_getgrgid() для преобразования его в имя группы.
Результаты функции каптируются, см. функцию clearstatcache(). Функция не работает под Windows.
fileowner
Получение группы владельца файла
int fileowner (string filename)
Возвращает ID владельца файла или FALSE в случае ошибки.
Идентификатор владельца возвращается в численном формате, используйте posix_getpwuid() для преобразования его в имя владельца (username).
Результаты функции кэшируются, см. функцию clearstatcache().
Функция не работает под Windows.
fileperms
Получение атрибутов доступа файла
int fileperms (string filename)
Возвращает FALSE в случае ошибки.
Результаты функции кэшируются, см. функцию clearstatcache().
filesize
Получение размера файла
int filesize (string filename)
Возвращает FALSE в случае ошибки.
Результаты функции кэшируются, см. функцию clearstatcache().
fileinode
Получение файлового блока inode int fileinode (string filename)
Возвращает номер блока файла в файловой системе или FALSE в случае ошибки.
Результаты функции кэшируются, см. функцию clearstatcache(). Функция не работает под Windows.
Манипулирование файлами
touch
Установка времени последней модификации или создание файла
int touch (string filename [, int time])
Пытается установить для файла filename атрибут последней модификации time. Если он не указывается, используется текущее время. Если файл не существует, он создается (поэтому эту функцию часто используют для создания файла). Возвращает TRUE или FALSE - при ошибке.
if (touch (SFileName)) { print "Ок";} else { print "Ошибка". }
unlink
Удаление файла
int unlink (string filename)
В системах Unix для удаления файлов используется системная функция unlink().
Возвращает TRUE или FALSE - при ошибке. Для удаления каталога используйте: rmdir(). Функция может не работать под Windows.
сору
Копирование файла
int copy (string source, string dest)
Копирует файл source в место, указанное dest. Возвращает TRUE или FALSE - при ошибке.
if (!copy($file, Sfile.' bak')j {
print ("Ошибка копирования
$file...<br>\n"): }
См. также rename().
rename
Переименование или перемещение файла
int rename (string oldname, string newname)
Переименовывает файл oldname в newname. Возвращает TRUE или FALSE - при ошибке.
move_uploaded_file
Перемещение загруженного файла
boo! move_uploaded_file (string filename, string destination)
Функция проверяет, является ли файл filename реально загруженным t помощью метода HTTP POST, если нет - возвращается FALSE.
Затем функция перемещает файл в новое место destination; а если это неосуществимо, возвращается FALSE (с выдачей системного сообщения).
См. также: is_uploaded_file().
tempnam
Генерация уникального имени временного файла string tempnam (string dir, string prefix)
Возвращает имя несуществующего в каталоге dir файла, начинающегося с prefix. Если аргументы не указываются, то используется временный каталог системы (в Windows он указан в системной переменной ТМР и значение аргумента dir не используется; в Linux аналогично используется значение.TMPDIR; проверьте системную документацию функции tempnam(3) для разрешения вопросов).
При ошибке возвращается пустая строка.
Stmpfname " tempram ("/tmp". TOO");
// в Windows 2000 выдаст,
например:
//E:\DOCUMr-i\9335-l\LOCALS-l\
Temp\F009.tmp
В версии РНР 4.0.3 поведение функции было изменено: при получении имени одновременно создается такой файл. Это сделано для того, чтобы в промежутке между получением уникального имени и созданием такого файла друюе приложение или сценарий не могли создать идентичный временный файл.
См. также tmp'ile().
tmpfile
Создание временного файла int tmpfile (void)
Создает уникальный файл в режиме записи, возвращая его дескриптор, подобно функции fopen(). Этот файл автоматически удаляется при его явном закрытии (функцией fclose()) или завершении сценария.
Для более подробной информации просмотрите использование системной функции tmpfile()) и заголовочный файл stdio.h.
См. также tempnam().
chgrp
Изменение группы файпч
int chgrp (string f;,aname, mixed group)
Пытается сменить у файла filename группу на значение group. Только администратор может безусловно изменять этот атрибут у любого файла, иначе необходимо входить в группу владельцев файла.
Возвращает TRUE или FALSE - при ошибке. Функция не работает под Windows.
См. также: chown() и chmod().
Пытается сменить у файла filename группу на значение group. Только администратор может безусловно изменять этот атрибут у любого файла, иначе необходимо входить в группу владельцев файла.
Возвращает TRUE или FALSE - при ошибке. Функция не работает под Windows.
См. также: chown() и chmod().
chmod
Изменение атрибутов доступа файла
int chmod (string filename, int mode)
Аргумент mode нужно явно задавать как восьмеричное число (то есть первой цифрой должен быть 0), а строки типа «g+vv» не будут приниматься:
chmod ("/somedir/somefile". 755).
// десятичное число; возможно неверное
значение chmod
("/somedir/somefile". "u+rwx.go+rx"),
// строка; неверное значение
chmod ("/somedir/somefile". 0755).
// десятичное число; правильный вариант
Возвращает TRUE или FALSE - при ошибке. Функция не работает иод Windows.
См. также: chown() и chgrp().
chown
Смена владельца файла
int chown (string filename, mixed user)
Только администратор может изменять этот атрибут файла.
Возвращает TRUE или FALSE - при ошибке.
Функция не работает иод Windows.
См. также: chown() и chmod().
umask
Изменение текущего значения umask int umask (int mask)
Устанавливает значение PHP umask равным (mask & 0777) и возвращает предыдущее значение umask. При использовании РНР как серверного модуля значение umask восстанавливается при завершении каждого запроса.
При неуказании аргументов просто возвращается текущая маска. Функция может не работать под Windows.
Системные функции
linkinfo
Получение информации о файловой ссылке int linkinfo (string path)
Возвращает поле st_dev структуры stat UNIX С, возвращаемой системным запросом Istat, или FALSE (0) при ошибке. Используется для проверки существования файловой ссылки (с именем path ). Такой же метод используется макросом S_ISLNK, определенным в файле stat.h.
Функция не работает под Windows.
См. также: symlink(), link() и readlink().
readlink
Получение назначения символьной ссылке string readlink (string path)
Возвращает путь к файлу, на который указывает ссылка path, или О - при ошибке.
Функция не работает под Windows.
См. также: symlink(), readlink() и linkinfo().
symlink
Создание символьной ссылки на файл
int symlink (string target, string link)
Создает файл link, являющийся ссылкой на существующий файл target.
Функция не работает под Windows.
См. также: link(), readlink(), linkinfo().
link
Создание жесткой файловой связи
int link (string target, string link)
Функция не работает под Windows.
См. также: symlink(), readlink(), linkinfo().
stat
Получение информации о файле
array stat (string filename)
Возвращает массив следующих элементов:
0. номер устройства (device);
1. номер файлового блока (mode);
2. режим защиты файлового блока (inode);
3. число файловых связей (links);
4. идентификатор владельца (user id);
5. идентификатор группы (group id);
6. тип блочного устройства (inode);
7. размер в байтах;
8. время последнего доступа;
9. время последней модификации;
10. время последнего изменения;
11. размер блока для системного ввода-вывода;
12. число занимаемых блоков.
Результаты функции кэшируются, см. функцию clearstatcache().
Istat
Получение информации о файле или ссылке на файл array Istat (string filename)
Функция подобна stat(), но она также работает с файловыми ссылками (причем информация возвращается о самой ссылке).
clearstatcache
Очистка кэша файловой информации void clearstatcache(void);
Во многих системах системный вызов stat() или Istat ()(а также функций, перечисленных ниже) достаточно накладен, поэтому их результаты кэшируются и при последующем вызове извлекаются из кэша. При необходимости обновления кэшированных данных (например, когда файл мог быть изменен другим приложением) вызывается данная функция.
Воздействует на функции stat(), Istat(), file_exists(), is_writeable(), is_readable(), is executable(), is file(), is_dir(), isJink(), filectime(), fileatime(), filemtime(), fileinode(), filegroup(), fileowner(), filesize(), filetype() и fileperms().
ftruncate
Урезание размера файла
int ftruncate (int fp, int size)
В качестве аргумента fp принимается дескриптор файла (а не имя), возвращаемый fopen(). Возвращает TRUE или FALSE - при ошибке.
set_file_buffer
Установка буферизации файловых операций
int set_fi1e_buffer (int fp, int buffer)
Вывод в файл, осуществляемый функцией fwrite(), обычно буферизируется порциями по 8 Кбайт. Это означает, что если два процесса одновременно осуществляют запись в один поток вывода (файл), каждый из них после записи очередных 8 Кбайт данных останавливается, чтобы позволить другому выполнить операцию записи.
Функция устанавливает размер буфера buffer байтов для операций записи в файл, имеющий дескриптор fp. Если аргумент buffer указывается со значением 0, то тогда буферизация отменяется, что- позволяет быть уверенным, что все операции записи, выполненные функцией fwrite(), совершаются при ее завершении (до того, как другим приложениям будет разрешена запись в тот же файл).
Возвращается 0 или EOF, если запрос не может быть выполнен.
$fp=fopen($file, "w"): if($fp){
set_file_buffer($fp. 0).
fputs($fp. Soutput);
fclose(Sfp): }
См. также: fopen(), fwrite().
flock
Блокирование совместного доступа
boo! flock (int fp, int operation [, int wouldblock]}
PHP поддерживает совместимый способ блокировки файла в целом для разделения совместного доступа (при этом все приложения, осуществляющие доступ, должны использовать этот единый способ блокировки, иначе это не будет работать).
Функция использует простейший метод блокировки чтения и записи, имеющийся в большинстве систем (Unix и Windows). В аргументах функции указывается: дескриптор открытого файла fp и способ его блокировки operation, который может принимать следующие значения
LOCK_SH - разделяемый доступ для чтения,
LOCKJiX - монопольный доступ для записи,
LOCKJJN - отмена разделяемой или монопольной блокировки,
LOCK_NB - блокировка не требуется.
Если в необязательном третьем аргументе указывается значение TRUE, то таким образом выясняется возможность блокировки (состояние errno: EWOULDBLOCK).
Возвращается TRUE или FALSE - если блокировка невозможна.
В большинстве операционных систем функция реализована для уровня приложения, и при использовании на многопоточном сервере с API, подобным ISAPI, нельзя полностью полагаться на нее для защиты от сценариев РНР параллельно исполняемых различными «потоками» (threads) одного серверного модуля. Фактически для операционной системы «потоки» одного процесса неразличимы.
Ввод и вывод
fopen
Открытие файла или URL
int fopen (string filename, string mode [, int use_include_path])
Функция открывает указанный аргументом filename поток ввода/ вывода (файл) в режиме чтения/записи mode и возвращает назначенный для него дескриптор.
Для того чтобы можно было открывать удаленные файлы (посредством протоколов http и ftp), необходимо, чтобы параметр конфшу-рации allow_url_fopen был разрешен (по умолчанию он разрешен). Эта способность РНР называется «URL fopen wrapper». В дальнейшем также станет возможно открывать сжатые файлы (gxip и bz2) аналогичным способом.
Если строка пути filename начинается с «http://» (регистр не важен) и HTTP 1.0 доступ к указанному серверу возможен, то открывается сеанс связи (указанный URL посылается серверу с указанным в пути заголовком 'Host:' для разрешения имен виртуальных хостов) и указатель файла настраивается на текст, получаемый в ответ на запрос. Это не обрабатывает редиректы адреса HTTP, поэтому необходимо включать завершающие слеши для каталогов. Файл может быть открыт только для чтения.
Если строка пути filename начинается с «ftp://» (регистр не важен), то файл запрашивается через протокол FTP. При этом сервер должен поддерживать пассивный метод ftp-передачи. Если это позволяет сервер, файл может быть открыт либо для чтения, либо для записи (но не одновременно).
Если в аргументе filename указывается значение «php://stdin» или "php://stdout", "php://stderr", открывается соответствующий стандартный ноток.
Если filename начинается с чего-либо иного, открывается соответствующий файл в локальной файловой системе. Можно указать необязательный аргумент use_include path со значением 1, и тогда файл будет искаться не только в текущем каталоге, но и в установленном по умолчанию (директивой include_path в файле php.ini) для подключаемых файлов.
Если открыть файл (в заданном режиме) не удастся, то возвращается значение FALSE.
Режим открытия mode может быть одним из следующих:
г - только для чтения; курсор файла устанавливается в (и последующее чтение производится с) начала файла;
г+ - для чтения и записи; о г начала файла;
w - только для записи «набело»; если файл существует, его содержимое удаляется, если не существует, то он создается;
w+ - для чтения и записи «набело»; если файл существует, его содержимое удаляется, если не существует, то он создастся;
а - только для дозаписи в конец; если файл существует, курсор устанавливается в его конец, если не существует, то он создается;
- а+ - для чтения и дозаписи в конец; если файл существует, курсор устанавливается в его конец, если не существует, то он создается.
В аргументе mode можно также указать символ b, что бывает полезно в системах, различающих двоичные (binary) и текстовые файлы1. Для других систем (например, Unix) это бесполезно и игнорируется.
$fp - fopen ("/home/rasmus/file.txt". "г");
$fp = fopen ("/home/rasmus/file.gif". "wb"):
Различие между двоичными и текстовыми файлами о том, что конец первых определяется исходя из их размера, а вторых - по присутствию символа конца файла (EOF).
$fp = fopen
("http://www.php net/", "r"):
$fp = fopen
("ftp;//user:password@example.com/". "w");
He забывайте, что для доступа к файлу необходимы соответствующие полномочия.
В Windows обратные слеши должны быть двойными или заменяться на прямые, если строка пути заключена в двойные кавычки.
$fp = fopen ("c:\\data\\info.txt". "r"):
Следующий пример открывает удаленный HTML-файл (по протоколу http) и выводит его заголовок:
<?php
Sfile = fopen ("http://www.php.nert/", "r");
if (!$file) {
echo "^Невозможно открыть
удаленный файл.\n":
exit; \ i
while (Ifeof ($file)) {
fgets ($nle. 1024);
/* Заголовок и его теги должны
располагаться в одной строке */
if (eregi ("<titie>( *)</title>".
Sline. $out)) { $title = $out[l]; break. }
fclose($fiie); echo Stitle; ?>
Еще один пример демонстрирует открытие и запись в FTP-фапл (на самом деле для работы с FTP-файлами рекомендуется использовать специальные функции).
<?php
Sfile ' fopen
("ftp;//ftp.php.net/inconiing/outpL:tfile". "w").
if (!$file) { echo 'vp>
Невозножно открыть удаленный
файл для записи.\n"; exit;
/* Запись в файл */
fputs ($flle. "$HnP_USER_AGENT\n");
fclose (Sfile). ?>
Заметьте, что запись в конец FTP-файла не поддерживается (файл не должен существовать, а должен создаваться). Если для НТР-доступа необходим пароль (по умолчанию вход осуществляется под именем «anonymous» без пароля), то его можно указывать в строке адреса в виде:
' ftp : //user : password@f tp . exampl e .
com/path/f ile
Такую же форму ввода пароля можно использовать и для протокола HTTP, когда требуется аутентификация типа Basic.
См. также: fclose(), fsockopen(), socket_set_timeout() и popen().
fclose
Закрытие (дескриптора) файла int fclose (int fp)
Возвращает TRUE или FALSE - при ошибке.
Дескриптор файла fp должен быть возвращен при успешном открытии файла функцией fopen() или fsockopen().
рореn
Открытие дескриптора вывода процесса
int рореп (string command, string mode)
Запускает процесс приложения command и возвращает дескриптор потока ввода/вывода, назначенный ему в режиме mode (аналогично fopen(J). При ошибке возвращает FALSE. Дескриптор может в дальнейшем использоваться функциями fgets(), fgetss() и fputs(), а затем закрыт pclose().
$fp = poptn ( VtTn/ls" "r"};
См. также pclose().
pclose
Закрытие дескриптора процесса
int pclose (int fp)
Закрывает дескриптор процесса (он должен быть предварительно успешно создан функцией рореп()).
Возвращае r-код завершения процесса.
См. также рореn().
fstat
Получение информации о файле через дескриптор
array fstat (int fp)
Возвращает массив с информацией о файле аналогично функции stat(). но отличается от нее тем, что принимает в качестве аргумента дескриптор успешно открытого файла вместо его имени.
fgetc
Чтение символа из файла
string fgetc (int fp)
Возвращает строку, содержащую один символ из файла, имеющего дескриптор fp (ранее возвращенный функцией fopen(), popen() или fsockopen()). Если это символ EOF (указатель конца файла), возвращает FALSE.
См. также: fread(), fopen(), popen(), fsockopen() и fgets().
fgets
Чтение строки из файла
string fgets (int fp, int length)
Возвращает строку из файла, имеющего дескриптор fp (ранее возвращенный функцией fopen(), popen() или fsockopen()). Длина возвращаемой строки указывается аргументом length. Если в строке встречается символ EOF (указатель конца файла) или «\n» (конец строки), то возвращаются все символы вплоть до этого (длина строки тогда может быть менее length). При ошибке возвращает FALSE.
$fd = fopen ("/tmp/inputfile.txt". "r"):
while (Ifeof ($fd)) {
$buffer = fgets($fd. 4096);
echo Sbuffer; } fclose ($fd):
См. также: fread(), fopen(), popen(), fgetc(), fsockopen() и socket_set_ timeout().
fgetss
Чтение строки из файла и удаление из нее HTML-тегов
string fgetss (int fp, int length [, string allowable_tags])
Функция подобна fgets(), за исключением того, что она также удаляет любые HTML- и PHP-теги из получаемого текста. В аргументе allowable_tags можно указать, какие теги не следует удалять.
См. также: fgets(), fopen(), fsockopen(), popen() и strip_tags().
fgetcsv
Чтение строки файла и разделение ее на поля CSV
array fgetcsv (int fp, int length [, string delimiter])
Функция сходна с fgets(), но после чтения она разделяет полученную строку на поля (согласно формату CSV) и возвращает их в элементах массива. Разделителем полей считается запятая либо другой символ, который можно указать в аргументе delimiter.
Аргумент fp должен быть дескриптором успешно открытого файла (возвращенный функциями fopen(), popen() или fsockopen()).
Аргумент length должен быть больше, чем самая длинная строка CSV-файла (включая завершающие символы строки).
Возвращает FALSE при ошибке (которой также считается непредвиденный конец файла). Часто в CSV-файлах признаком конца файла считается пустая строка, которая будет возвращена в виде массива, содержащего один нулевой элемент, и это не будет считаться ошибкой.
$l"OW = 1:
$fp = fopen ("test.csv"."r").
while
(Sdata = fgetcsv ($fp. 1000. ".")) {
$num = count ($data);
print "<p>
Jnura fields in line $row: <br>";
$row++:
for ($c=0: $c<$num: Ic++)
{ print $data[$c] "<br>";
} } fclose ($fp):
file
Чтение всего файла в массив
array file (string filename [, int use_include_path])
Функция подобна readfile(), но строки файла возвращаются в массиве. Концом строки считается символ «\п» (он также возвращается).
Можно указать необязательный аргумент use_include_path со значением 1, и тогда файл будет искаться не только в текущем каталоге, но и в установленном по умолчанию (директивой include_path в файле php.ini) для подключаемых файлов.
<?php
// прочитать web-страницу в массив
и распечатать Sfcontents = file
('http://www.php.net'): while (list (Slinejmm. Sline)
= each ($fcontents))
{ echo "<b>Line $line_num:</b> " .
htmlspecialchars ($line) .
"<br>\n", }
// прочитать в одну строку
$fcontents - join (". file
('http://www.php.net')): ?>
См. также: readfile(), fopen(), fsockopen() и popen().
fread
Чтение файла
string fread (int fp, int length)
Возвращается строка, представляющая последовательность байтов файла (указанного дескриптором fp) длиной length. Чтение прекращается также, если встречается символ EOF.
$filename = "/usr/local/something.txt";
$fd - fopen (Sfilename. "r").
$contents = fread ($fd, filesize (Sfllename)):
fclose ($fd):
См. также: fwrite(), fopen(), fsockopen(), popen(), fgets(), fgetss(), fscanf(), file(), fpassthru().
readfile
Вывод файла
int readfile (string filename [, int use_include_path])
Функция выполняет последовательно три операции. Открывает файл, так же как функция fopen() (режим открытия не указывается, так как он используется только для чтения). Читает и выводит все содержимое файла в стандартный поток вывода и закрывает файл.
Отличие этой функции от директив include(), require() в том, что она возвращает количество выведенных байтов (или значение FALSE при ошибке). В случае возникновения ошибки также выводится стандартное уведомление (если, конечно, при вызове функции сообщения об ошибках не блокируются, например, так: @readfile).
См. также: fpassthru(), file(), fopen(), include(), require(), virtual().
fpassthru
Вывод содержимого файла int fpassthru (int fp)
Читает содержимое файла с дескриптором (пока не встретится символ EOF) и выводит его в стандартный поток вывода. При ошибке возвращается FALSE.
Дескриптор должен быть возвращен при успешном открытии файла функцией fopen(), popen() или fsockopen(). После вывода файл автоматически закрывается (и дескриптор становится недействителен).
Для простого чтения и вывода файла (если не требуется предварительная запись в него) используйте функцию readfile().
См. также: readfile(), fopen(), popen() и fsockopen()
fscanf
Форматированный ввод из файла
mixed fscanf (int handle, string format [, string varl...])
Функция подобна sscanf(), но она читает данные из файла (указанного дескриптором handle) и интерпретирует их согласно формату, указанному аргументом format. Если в функции указываются только два аргумента, извлеченные данные возвращаются в массиве; в противном случае необходимо указывать ссылки на переменные, в которых следует сохранить значения (тогда функция возвращает число инициализированных переменных).
$fp = fopen ("users.txt"."г").
while
(Suserinfo = fscanf ($fp. "ls\Ws\Us\n")) {
list ($name. Sprofession,
Scountrycode) = lusennfo;
//... делаем что-то со значениями
} fclose($fp),
Содержимое файла users.txt
Javier argonaut pe
hiroshi sculptor jp
robert slacker us
См. также: fread(), fgets(), fgetss(), sscanf(), printf() и sprintf().
fwrite
Запись в файл
int fwrite (int fp. string string [, int length])
Записывает содержимое строки string в файловый ноток (на который указывает дескриптор fp). При указании аргумента length производится запись только указанного числа байтов (но не большего, чем содержится в строке), а также игнорируется параметр конфигурации magic_quotes_runtime (и слеши не исключаются из записываемой строки).
См. также: fread(), fopen(), fsockopen(), popen() и fputs().
fputs
Синоним функции fwrite
int fputs (int fp, string str [, int length])
Аргумент длины записываемой строки length может не указываться (тогда строка str записывается в файл целиком).
fflush
Запись стандартного вывода в файл int fflush (int fp)
Весь буферизированный вывод записывается в открытый файл, на который указывает дескриптор fp. Возвращает TRUE или FALSE - при ошибке.
feof
Проверка достижения конца файла
int feof (int fp)
Возвращает TRUE, если курсор файла указывает на символ EOF или возникает ошибка; иначе - FALSE.
Аргумент fp должен быть дескриптором успешно открытого файла (возвращенный функциями fopen(), popen() или fsockopen()).
ftell
Проверка позиции курсора файла
int ftell (int fp)
Возвращает позицию курсора файла, на который указывает дескриптор fp, то есть то смещение от начала файлового потока, в которое производится запись или осуществляется чтение. При ошибке возвращает FALSE.
Аргумент fp должен быть дескриптором успешно открытого файла (возвращенный функциями fopen(), popen()).
См. также: fopen(), popen(). fseek() и rewind().
fseek
Установка позиции курсора файла
int fseek (int fp, int offset [. int whence])
Новая позиция курсора файла указывается аргументом offset и измеряется в байтах от места, указанного аргументом whence, который может принимать одно из значений:
SEEK_SET - от начала файла;
SEEK_CUR - от текущей позиции курсора;
SEEK_ENO - от конца файла.
Если аргумент whence не указывается, смещение вычисляется от начала файла. При ошибке возвращается -1, иначе 0. Заметьте: указание смещения после символа EOF не считается ошибкой.
Дескриптор файла fp должен быть возвращен успешным вызовом функции fopen(). С файлами, открытыми через протокол HTTP или FTP, функция не работает.
См. также: ftell() и rewind().
rewind
Установка курсора на начало файлового потока
int rewind (int fp)
Функция эквивалентна вызову fseek(fp, 0). При ошибке возвращается 0.
См. также: fseek() и ftel().