программирование, создание программ, учебник Delphi, учебник по программированию, бейсек, делфи, си, паскаль
 
 
 

 

Файлы и сети

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

Работа с каталогами

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().
Работа с архивами Zlib
Модуль zlib (http://www.info-zip.org/pub/infozip/zlib/), разработанный Jean-loup Gailly и Mark Adler, позволяет производить операции файлового ввода-вывода в файлах, архивированных (сжатых) методом gzip (.gz). В этом модуле РНР используется библиотека zlib версии 1.0.9. Модуль содержит большую часть родственных функций файловой системы (с префиксом gz), которые могут работать как с обычными, так и с архивными файлами (но не с секстами).
Для текущей версии РНР поддержка этих функций должна быть косвенно включена в обычные функции файловой системы. Таким образом, при подключении модуля zlib файловые функции (с помощью метода, называемого fopen-vvrapper для .gz-файлов) могут также просто работать с архивными файлами, как и с FTP-файлами. Для этого в строке имени файла (пути к нему) нужно указывать специальный префикс 'zlib:', подобно указанию URL для доступа к FTP-файлам.
<?php
$filename='C:\ZZZ.gz1.
// открыть файл для записи с
максимальным сжатием
$zp - gzopen($filename. "w9"):
// записать строку в файл
$s =- "Only a test. test. test. test,
test test. test. test!\n"
g?wnte($zp. $s);
gzclose(SzD). // закрыть файл
$zp = gzopen($filename. "г").
print gzread($zp. 3):// прочитать
З символа gzpassthru($zp):
// выводить содержимое до
конца файла и закрыть его
// еще раз вывести содержимое файла
if (rea>1gzfile($filename) != strlen($s))
{ echo "Error with zlib functions!".} ?>
gzcompress
Сжатие строки методом Gz
string gzcompress (string data [, int level])
Аргументом level можно указать степень сжатия (от минимального О до 9).
См. также gzuncompress().
gzuncompress
Распаковка gz-сжатой строки
string gzuncompress (string data [, int length])
Возвращает оригинальную строку данных, сжатую ранее функцией gzcompress(), или FALSE в случае ошибки. Ошибка может возникнуть (помимо случая поврежденных данных), если при распаковке размер строки увеличивается более чем в 256 раз или становится больше, чем указано в необязательном аргументе length.
См. также gzcompress().
readgzfile
Вывод gz-файла
int readgzfile (string filename [, int use_include_path])
Читает файл filename, распаковывает его и выводит (в стандартный поток вывода). Функция может также работать с обычными файлами (тогда распаковка не производится).
Возвращает число выведенных байтов или FALSE — в случае ошибки. В случае ошибки также выводится сообщение об ошибке (если только функция не была вызвана как Preadgzfile).
Необязательный аргумент include_path можно использовать (если его значение равно 1), чтобы поиск файла также производился в установленных параметром include_path каталогах по умолчанию.
См. также: gzpassthru(), gzfile() и gzopen().
gzfile
Чтение всего gz-файла в массив
array gzfile (string filename [, Int use_include_path])
Функция подобна readgzfi'le(), но распакованные данные не выводятся, а возвращаются в виде массива.
См. также: readgzfile() и gzopen().
gzopen
Открытие gz-файла
int gzopen (string filename, string mode [, int use_include_path])
Функция сходна с fopen(), но она работает с файлами gzip (.gz). Аргумент,mode может быть таким же, как в функции fopen() ("rb" или "wb"), но может также включать цифру, указывающую на степень используемого сжатия (например: "wb9-") и метод: f для фильтруемых данных (например: "wb6f"), h -для компрессии Хаффмана ("wblh"). Описание параметра deflatelnit2 смотрите в файле zlib.h.
Функция также может использоваться для открытия обычного файла; в таком случае gzread() будет читать данные файла без декомпрессии.
Функция возвращает дескриптор открытого файла (или FALSE в случае ошибки), используя который, можно осуществлять операции ввода-вывода, и сжатие и распаковка данных будут осуществляться автоматически.
Необязательный аргумент include_path можно использовать (если его значение равно 1), чтобы поиск файла также производился в установленных параметром include_path каталогах по умолчанию.
$fp = gzopen ("/tmp/file gz". "r").
См. также gzclose().
gzclose
Закрытие gz-файла int gzclose (int zp)
Закрывает gz-файл, дескриптор которого zp должен был быть ранее успешно возвращен функцией gzopen(). Возвращает TRUE или FALSE - при ошибке.
gzread
Чтение последовательности символов из gz-файла
string gzread (int zp, int length)
Число читаемых байтов указывается аргументом length. Дескриптор zp должен быть ранее успешно возвращен функцией gzopen(). Чтение прекращается, когда будет прочитано length распакованных байтов или если будет обнаружен символ конца файла EOF.
Sfilename =
"/usr/local/something txt.gz": Szd =
gzopen (Sfilename. "r"). Scontents =
gzread (Szd. 10000). gzclose (Szd);
См. также: gzwrite(), gzopen(), gzgets(), gzgetss(), gzfile() и gzpassthru().
gzgetc
Чтение символа из gz-файла
string gzgetc (int zp)
Возвращает строку, содержащую единственный (распакованный) символ файла, имеющего дескриптор zp. Если встречается символ EOF, то возвращается FALSE (так же как функцией gzeof()).
Дескриптор zp должен быть ранее успешно возвращен функцией gzopen().
См. также: gzopen() и gzgets().
gzgets
Чтение строки
string gzgets (int zp, int length)
Возвращает распакованную строку gz-файла, имеющего дескриптор zp.
Чтение прекращается, когда будет прочитано length-1 распакованных байтов, если будет обнаружен символ конца файла EOF или встретится символ конца строки.
При ошибке возвращает FALSE.
Дескриптор zp должен быть ранее успешно возвращен функцией gzopen().
См. также: gzopen(), gzgetc() и fgets().
gzgetss
Аналог gzgets, удаляющий теги HTML и PHP из текста
string gzgetss (int zp, int length [, string allowablejtags])
Необязательным аргументом можно указать, какие теги не следует удалять.
См. также: gzgets(), gzopen(), strip_tags().
gzpassthru
Вывод всего содержимого gz-файла до его конца
int gzpassthru (int zp)
Читает (распаковывая) gz-файл с дескриптором zp от текущей позиции курсора и до конца (позиции, в которой находится символ EOF) и затем выводит полученное содержимое в стандартный поток вывода. При ошибке возвращает FALSE.
Дескриптор zp должен быть ранее успешно возвращен функцией gzopen().
После вывода файл закрывается (функция gzclose() вызывается неявно).
gzwrite
Запись строки в gz-файл
int gzwrite (int zp, string string [, int length])
Записывает содержимое строки string (упаковывая) в gz-файл с дескриптором zp. Если указан аргумент length, то запись прекращается после того, как будет записано length (неупакованных) байтов (если размер строки более length байтов).
Заметьте, что параметр magic_quotes_runtime (если он разрешен) игнорируется и слеши не удаляются из строки string, если указывается аргумент length.
См. также: gzread(), gzopen() и gzputs().
gzputs
Синоним функции gzwrite
int gzputs (int zp, string str [, int length])
gzeof
Проверка наличия символа конца файла
int gzeof (int zp)
Возвращает TRUE, если текущий символ gz-файла — это EOF или если при операции чтения произошла ошибка; иначе возвращает FALSE.
Дескриптор zp должен был быть ранее успешно возвращен функцией gzopen().
gztell
Определение позиции курсора gz-файла int gztell (int zp)
Возвращает ту позицию (в байтах) от начала файла (на который указывает дескриптор zp), в которую будет осуществляться запись или чтение (gz-функциями).
При ошибке возвращает FALSE.
Дескриптор zp должен был быть ранее успешно возвращен функцией gzopen().
См. также: gzopen(), gzseek() и gzrewind().
gzseek
Перемещение курсора gz-файла int gzseek (int zp, int offset)
Передвигает позицию курсора файла (на который указывает дескриптор zp) на число байтов от его начала offset.
Если файл открыт для чтения, то функция эмулируется, и она будет выполняться крайне медленно (так как в сжатых файлах смещение нужно вычислять). Если файл открыт для записи, то курсор можно сдвигать только вперед (тогда в файл просто записывается последовательность нулей вплоть до новой позиции).
Функция возвращает 0 или -1 — при ошибке. Заметьте, перемещение курсора в позицию после символа EOF не считается ошибкой.
См. также: gztell() и gzrewind().
gzrewind
Перемещение курсора в начало gz-файла
int gzrewind (int zp)
При ошибке возвращается 0.
Дескриптор zp должен был быть ранее успешно возвращен функцией gzopen().
См. также: gzseek() и gztell().
Сжатые файлы Bzip2
Модуль bzip2 использует библиотеку (http://sources.redhat.com/bzip2/), написанную Джулианом Севардом (Julian Seward), которая позволяет проводить операции файлового ввода-вывода из архивов bzip2 (.bz2).
Чтобы использовать функции bzip2 в РНР, надо при компиляции указать параметр —with-bz2[=DIR] (для этого требуется библиотека bzip2/ Iibbzip2 версии не ранее 1.0.x). Этот модуль можно также подключить динамически. Так как модуль добавлен недавно, он может работать нестабильно.
<?php
Sfilename = "/tmp/testfile.bz2";
$str = "This is a test string.\n":
$bz = bzopen($filename. "w");
bzwrite($bz. $str),
bzclose($bz).
Ibz = bzopen($filename. "r").
echo print bzread($bz. 10). bzread($bz).
bzclose($bz). ?>
bzcompress
Сжатие строки методом bzip2
string bzcompress (string source [, int blocksize [, int workfactor]]) Исходная строка указывается в аргументе source.
В необязательном аргументе blocksize можно указать уровень сжатия (от 1 до 9, где 9 — максимальное сжатие, требующее максимума ресурсов), по умолчанию он равен 4.
Аргумент workfactor управляет сжатием данных с высокой частотностью. Возможные значения от 0 до 250. О — специальное значение. По умолчанию: 30.
$str = "sample data" :
$bzstr = bzcompress($str. 9);
pnnt( $bzstr ):
См. также: bzdeconpress().
bzdecompress
Распаковка строки, сжатой методом bzip2
string bzdecompress (string source [. int small])
Распаковывает строку source, содержащую сжатые методом bzip2 данные, и возвращает полученную строку. Если в необязательном аргументе указывается значение TRUE, используется алгоритм, потребляющий минимальный объем памяти (максимум 2.3 Мб), но при этом функция работает медленнее (в 2 раза).
<?php
$start_str = "Это первоначальная
несжатая строка":
Jbzstr -= bzcompress($start_str'>;
print( 'Compressed
String: Sbzstr \n<br>" ):
$str = Dzdecompress($bzstr);
print( "Decompressed
St1" rig. ' $str . "\n<br>" ): ?>
См. также: bzcompress().
bzopen
Открытие сжатого файла bzip2
int bzopen (string filename, string mode)
Возвращает дескриптор открытого файла или FALSE в случае ошибки. Аргумент mode может быть таким же, как в функции fopen() ("r" для чтения, "w" для записи и т. д.).
<?php
$bz = bzopenf"/trap/too.bz2", "r"):
$decompressea_file = bzread($oz.
fiIesize("/tmp/foo.bz2")):
bzclose($bz):
print( "The contents of
/tmp/foo.Dz2 are: " ):
print( "\n<br>n" ):
print( $decompressed_file ). ?>
См. также bzclose().
bzclose
Закрытие файла bzip2 int bzclose (int bz)
Закрывает файл bzip2, дескриптор которого bz должен был быть ранее успешно возвращен функцией bzopen(). Возвращает TRUE или FALSE - при ошибке.
См. также bzopen().
bzread
Чтение из файла bzip2
string bzread (int bz [, int length])
Число читаемых байтов можно указать аргументом length (если он не указывается, то его значением считается 1024). Дескриптор bz должен быть ранее успешно возвращен функцией bzopen(). Чтение прекращается, когда будет прочитано length распакованных байтов или если будет обнаружен символ конца файла EOF.
<?php
$bz = bzopen("/tmp/foo.bz2". "г"):
$str
bzread($bz. 2048), printt $str ):?>
См. также: bzwrite() и bzopen().
bzwrite
Запись в файл bzip2 данных
int bzwrite (int bz, string data [, int length])
В аргументе data указывается строка, содержащая записываемые данные. В аргументе bz указывается дескриптор открытого файла bzip2. Если указан аргумент length, то запись прекращается после того, как будет записано length (неупакованных) байтов (если размер строки более length байтов).
<?php
$str = "uncompressed data".
$bz - bzopenCYtmp/foo.bzZ", V).
bzwnte($bz. $str. strlpn($str)).
bzclose($bz); ?>
См. также: bzread() и bzopen().
bzflush
Запись всего буферизованного вывода в файл bzip2
int bzflush (int bz)
В аргументе bz указывается дескриптор открытого файла.
Возвращается TRUE или FALSE — при ошибке.
См. также: bzread() и bzwrite().
bzerrno
Получение номера ошибки bzip2 int bzerrno (int bz)
В аргументе bz указывается дескриптор открытого файла, при операции с которым произошла ошибка.
См. также: bzerror() и bzerrstr().
bzerrstr
Получение описания ошибки bzip2
string bzerrstr (int bz)
В аргументе bz указывается дескриптор открытого файла, при операции с которым произошла ошибка.
См. также: bzerrno() и bzerror().
bzerror
Получение номера и описания ошибки bzip2 в массиве
array bzerror (int bz)
Возвращается ассоциативный массив, содержащий соответственно два элемента. В аргументе bz указывается дескриптор открытого файла, при операции с которым произошла ошибка.
Serror = bzerror($t>z):
echo $error["errno"]:
echo Sen or["errbtr"].
См. также: bzerrno() и bzerrstr().

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика