Информационные технологииStfw.Ru 🔍

Файловая система

Файлы и сети
🕛 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().

Учебник по основам PHP   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉