Файлы и сети
Работа с каталогами basename Получение компонента файлового имени в пути string basename (string path) Возвращает имя файла, выделенного из строки path, представляющей путь к файлу. В большинстве систем разделителем каталогов в пути служит прямой слеш «/>>. В Windows также может использоваться обратный слеш «\». Spath = "/home/httpd/html/index.php3":
См. также dirname() dirname Исключение имени файла из пути string dirname (string path) Возвращает строку пути path, из которой исключено имя файла. В большинстве систем разделителем каталогов в пути служит прямой слеш «/». В Windows также может использоваться обратный слеш «\». Spath = "/etc/passwd" См. также basename(). realpath Исключение сокращений в строке пути string realpath (string path) Заменяет все символьные ссылки и сокращения типа: «/./», «/../» (с дополнительными слешами «/») в строке path и возвращает полученный безоговорочный путь. $real_path = realpath 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"). 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('.'): while (FALSE!== 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 { См. также 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");
В версии РНР 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). Возвращает 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); Результаты функции кэшируются, см. функцию 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){ См. также: fopen(), fwrite(). flock Блокирование совместного доступа boo! flock (int fp, int operation [, int wouldblock]} PHP поддерживает совместимый способ блокировки файла в целом для разделения совместного доступа (при этом все приложения, осуществляющие доступ, обязаны использовать данный цельный способ блокировки, наоборот это не будет работать). Функция использует простой метод блокировки чтения и записи, имеющийся в большинстве систем (Unix и Windows). В аргументах функции указывается: дескриптор открытого файла fp и способ его блокировки operation, тот, что может принимать следующие значения
Если в необязательном третьем аргументе указывается значение 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 может быть одним из следующих:
В аргументе mode позволено также указать символ b, что бывает целебно в системах, различающих двоичные (binary) и текстовые файлы1. Для других систем (скажем, Unix) это бесполезно и игнорируется. $fp - fopen ("/home/rasmus/file.txt". "г"); Различие между двоичными и текстовыми файлами о том, что конец первых определяется исходя из их размера, а вторых — по присутствию символа конца файла (EOF). $fp = fopen He забывайте, что для доступа к файлу необходимы соответствующие полномочия. В Windows обратные слеши обязаны быть двойными либо заменяться на прямые, если строка пути заключена в двойные кавычки. $fp = fopen ("c:\\data\\info.txt". "r"): Последующий пример открывает удаленный HTML-файл (по протоколу http) и выводит его заголовок: <?php Еще один пример показывает открытие и запись в FTP-фапл (на самом деле для работы с FTP-файлами рекомендуется использовать специальные функции). <?php Заметьте, что запись в конец FTP-файла не поддерживается (файл не должен существовать, а должен создаваться). Если для НТР-доступа надобен пароль (по умолчанию вход осуществляется под именем «anonymous» без пароля), то его позволено указывать в строке адреса в виде: ' ftp : //user : password@f tp . exampl e . Такую же форму ввода пароля позволено использовать и для протокола 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"): См. также: 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: file Чтение всякого файла в массив array file (string filename [, int use_include_path]) Функция подобна readfile(), но строки файла возвращаются в массиве. Концом строки считается символ «\п» (он также возвращается). Позволено указать добровольный аргумент use_include_path со значением 1, и тогда файл будет искаться не только в текущем каталоге, но и в установленном по умолчанию (директивой include_path в файле php.ini) для подключаемых файлов. <?php См. также: readfile(), fopen(), fsockopen() и popen(). fread Чтение файла string fread (int fp, int length) Возвращается строка, представляющая последовательность байтов файла (указанного дескриптором fp) длиной length. Чтение прекращается также, если встречается символ EOF. $filename = "/usr/local/something.txt"; См. также: 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"."г"). Содержимое файла users.txt Javier argonaut pe См. также: 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, тот, что может принимать одно из значений:
Если аргумент whence не указывается, смещение вычисляется от начала файла. При ошибке возвращается -1, наоборот 0. Заметьте: указание смещения позднее символа EOF не считается оплошностью. Дескриптор файла fp должен быть возвращен успешным вызовом функции fopen(). С файлами, открытыми через протокол HTTP либо FTP, функция не работает. См. также: ftell() и rewind(). rewind Установка курсора на вступление файлового потока int rewind (int fp) Функция эквивалентна вызову fseek(fp, 0). При ошибке возвращается 0. См. также: fseek() и ftel(). Модуль 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 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 = См. также: 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 использует библиотеку (http://sources.redhat.com/bzip2/), написанную Джулианом Севардом (Julian Seward), которая позволяет проводить операции файлового ввода-результата из архивов bzip2 (.bz2). Чтобы использовать функции bzip2 в РНР, необходимо при компиляции указать параметр —with-bz2[=DIR] (для этого требуется библиотека bzip2/ Iibbzip2 версии не ранее 1.0.x). Данный модуль позволено также подключить динамически. Так как модуль добавлен недавно, он может работать нестабильно. <?php bzcompress Сжатие строки методом bzip2 string bzcompress (string source [, int blocksize [, int workfactor]]) Исходная строка указывается в аргументе source. В необязательном аргументе blocksize позволено указать уровень сжатия (от 1 до 9, где 9 — максимальное сжатие, требующее максимума источников), по умолчанию он равен 4. Аргумент workfactor управляет сжатием данных с высокой частотностью. Возможные значения от 0 до 250. О — специальное значение. По умолчанию: 30. $str = "sample data" : См. также: bzdeconpress(). bzdecompress Распаковка строки, сжатой методом bzip2 string bzdecompress (string source [. int small]) Распаковывает строку source, содержащую сжатые методом bzip2 данные, и возвращает полученную строку. Если в необязательном аргументе указывается значение TRUE, используется алгоритм, потребляющий минимальный объем памяти (максимум 2.3 Мб), но при этом функция работает неспешней (в 2 раза). <?php См. также: bzcompress(). bzopen Открытие сжатого файла bzip2 int bzopen (string filename, string mode) Возвращает дескриптор открытого файла либо FALSE в случае ошибки. Аргумент mode может быть таким же, как в функции fopen() ("r" для чтения, "w" для записи и т. д.). <?php См. также 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 См. также: bzwrite() и bzopen(). bzwrite Запись в файл bzip2 данных int bzwrite (int bz, string data [, int length]) В аргументе data указывается строка, содержащая записываемые данные. В аргументе bz указывается дескриптор открытого файла bzip2. Если указан аргумент length, то запись прекращается позднее того, как будет записано length (неупакованных) байтов (если размер строки огромнее length байтов). <?php См. также: 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): См. также: bzerrno() и bzerrstr(). При использовании модуля FTP им определяются две константы: FTP_ASCII и FTP_BINARY. Функции используют дескриптор сеанса подключения (это 1-й аргумент, обозначенный как ftp_stream). Простой сеанс FTP может проходить последующим образом: <?php ftp_connect Подключение к FTP-серверу Int ftp_connect (string host [, int port]) Аргумент host указывает имя сервера, к которому осуществляется доступ, a port — используемый для подключения порт (если он не указан либо указывается 0, то используется порт по умолчанию — 21). Возвращает дескриптор потока FTP либо FALSE при ошибке. ftp_ pasv Переключение пассивного режима int ftp_pasv (int ftp_stream. int pasv) Переключает режим подключения в пассивный (если аргумент pasv равен TRUE) либо активный (если аргумент pasv равен FALSE). В пассивном режиме передача данных инициируется клиентом, а не сервером (это бывает надобно при блокировке портов у клиента). Возвращает TRUE либо FALSE — при ошибке. ftp_ login Вход на сервер FTP int ftpjogin (int ftp_stream, string usemame, string password) Зарегистрироваться в системе под именем username с паролем password. Возвращает TRUE либо FALSE — при ошибке. ftp_quit Завершение сеанса FTP int ftp_quit (int ftp_stream) ftp_pwd Определение текущего каталога string ftp_pwd (int ftp_stream) Возвращает текущий каталог FTP-сервера либо FALSE — при ошибке. ftp_cdup Переход в корневой каталог int ftp_cdup (int ftp_stream) Возвращает TRUE либо FALSE — при ошибке. ftp_chdir Переход в каталог int ftp_chdir (int ftp_stream, string directory) Возвращает TRUE либо FALSE — при ошибке. ftp_mkdir Создание каталога string ftpjnkdir (int ftp_stream, string directory) Возвращает имя сделанного каталога directory либо FALSE — при ошибке. ftp_rmdir Удаление каталога int ftp_rmdir (int ftp_streara, string directory) Возвращает TRUE либо FALSE — при ошибке. ftp_nlist Получение листинга каталога array ftp_nlist (int ftp_stream, string directory) Возвращает массив файловых имен либо FALSE — при ошибке. ftp_rawlist Получение детализированного листинга каталога array ftp_raw1ist (int ftp_stream, string directory) Исполняет РТР-команду LIST, и возвращает ее результат в массиве, где каждый элемент соответствует строке текста «как есть». Идентификатор типа системы, возвращаемый ftp_systype(), может быть использован для определения того, как следует интерпретировать выводы. ftp_systype Получение системного идентификатора типа FTP-сервера string ftp_systype (int ftp_stream) Возвращает строковое значение либо FALSE — при ошибке. ftp_ get Загрузка файла с FTP int ftp_get (int ftp_stream, string 1ocal_file, string remote_file, int mode) Загружает удаленный файл remote_file с сервера FTP и сберегает его локально под именем local_file. Режим передачи mode должен быть указан либо как FTP_ASCII, либо как FTP_BINARY. Возвращает TRUE либо FALSE — при ошибке. ftp_get Загрузка и запись файла int ftp_fget (int ftp_stream, int fp, string remote_file, int mode) Загружает удаленный файл remote_file с сервера FTP и сберегает его содержимое в открытом файле, имеющем дескриптор fp. Режим передачи mode должен быть указан либо как FTP_ASCII, либо как FTP_ BINARY. Возвращает TRUE либо FALSE — при ошибке.
ftp_put Загрузка файла на сервер FTP int ftp_put (int ftp_stream, string remote_file, string localjfile, int mode) Сберегает файл local_file на сервере FTP под именем remote_file. Режим передачи mode должен быть указан либо как FTP_ASCII, либо как FTP_BINARY. Возвращает TRUE либо FALSE — при ошибке. Supload = ftp_put ftp_fput Чтение и загрузка файла на сервер int ftp_fput (int ftp_stream, string remote_file, int fp, int mode) Читает открытый файл (дескриптора fp) до сто конца и загружает его на сервер FTP под именем remote_fi!e. Режим передачи mode должен быть указан либо как FTP_ASCII, либо как FTP_BINARY. Возвращает TRUE пли FALSE — при ошибке. ftp_size Определение размера файла int ftp_size (int ftp_stream, string remotejfile) Возвращает размер файла в байтах либо -1 — при ошибке. Не все серверы поддерживают эту возможность. ftp_mdtm Получение времени последней модификации файла int ftpjndtm (int ftp_stream, string remote_file) Возвращает время в формате «UNIX timcstamp» либо -1 — при ошибке. Функция не работает с каталогами. ftp_rename Переименование файла на сервере int ftp_rename (int ftp_stream, string from, string to) Переименовывает файл from в to. Возвращает TRUE либо FALSE — при ошибке. ftp_delete Удаление файла на сервере int ftpjJelete (int ftp_stream. string path) Возвращает TRUE либо FALSE — при ошибке. flp_site Выполнение команды SITE на сервере int ftp_site (int ftp_stream, string cmd) Посылает серверу команду cmd. Возвращает TRUE либо FALSE — при ошибке. Так как команды SITE не стандартизированы, они могут различаться. Обычно они пригодны для изменения прав доступа к файлам и групповой принадлежности. ip2long Конвертация строки адреса IPv4 в число int ip21ong (string ip_address) Возвращает четырехбайтовое численное представление адреса IP v4 из строки (числа, поделенные точками, скажем: «127.0.0.1»). $ip = gethostbyname("wvjw.php.net"); См. также Iong2ip(). Iong2ip Конвертация числа в строку адреса IP v4 string Iong2ip (int proper_address) Возвращает строковое представление IP-адреса (в формате: «ааа. bbb.ccc.ddd») из числового значения. См. также ip2long(). gethostbyaddr Получение имени хоста, соответствующего адресу IP string gethostbyaddr (string ip_address) В аргументе указывается адрес IP в строковом формате. При ошибке возвращается ip_address. Заметьте: большинству IP-адресов в Интернете соответствует несколько имен (одно из них: localhost). echo gethostbyaddr("127.001"); См. также gethostbyname(). gethostbyname Получение IP-адреса хоста string gethostbyname (string hostname) print gethostbyname ("localhost"); См. также gethostbyaddr(). gethostbynamel Получение списка IP-адресов, принадлежащих хосту array gethostbynamel (string hostname) Функция используется вместо gethostbynamez(), когда хост hostname имеет несколько сетевых интерфейсов с разными адресами. См. также: gethostbyname(), gethostbyaddr(), checkdnsrr(), getmxrr() и раздел named справочной системы man. getprotobyname Определение номера порта, используемого протоколом1 int getprotobyname (string name) В системах Unix соответствие портов и протоколов указывается в файле /etc/protocols. См. также getprotobynumber(). getprotobynumber Определение протокола порта string getprotobynumber (int number) См. также getprotobyname(). getservbyname Определение порта Интернет-службы Int getservbyname (string service, string protocol) Возвращает номер порта, использующийся службой service. (В системах Uni\ это соответствие портов и служб указывается в файле /etc/services) В аргументе protocol указывается тип протокола — TCP либо UDP. echo getservbyname ("HTTP"."TCP"); См. также getservbyportt(). getservbyport Определение Интернет-службы, использующей порт string getservbyport (int port, string protocol) В аргументе protocol указывается тип протокола — TCP либо UDP. echo getservbyport(21."TCP"): См. также getservbyname(). checkdnsrr Проверка записи DNS int checkdnsrr (string host [, string type]) Отправляет запрос DNS-сервсру для поиска записей, имеющихся для хоста host. Возвращает TRUE, если были найдены записи типа type, либо FALSE в отвратном случае, а также при ошибке. Аргумент type может иметь одно из следующих значений: A, MX, NS, SO A, PTR, CNAME, ANY. По умолчанию (если аргумент не указан) его значение MX. Аргумент host может указываться строкой IP-формата с разделением точками, либо быть именем хоста. См. также: getmxrr(), gethostbyaddr(), gethostbyname(), gethostbynaroe() и раздел named справочной системы Unix man. getmxrr Получение MX записи для Интернет-хоста int getmxrr (string hostname, array mxhosts [, array weight]) Инициирует поиск в БД DNS записи MX (почтовый сервер домена) для хоста hostname. Возвращает TRUE, если запись найдена; FALSE, если поиск прошел бесплодно. Список записей MX заносится в массив mxhosts. Если указан массив weight, он заполняется дополнительной информацией о записях. См. также: checkdnsrr(), gethostbyname(), gethostbynamel(), gethostbyaddr() и раздел named справочной системы Unix man. Сетевая отладка PHP debugger_off Блокировка внутреннего отладчика РНР int debugger_off(void): Отладчик пока находится в стадии разработки (для РНР 4). debugger_ on Разрешение использования внутреннего отладчика РНР int debugger_on (string address) Подключает отладчик но адресу address (на удаленном сервере). Отладчик пока находится в стадии разработки, но он доступен для РНР версии 3. define_ syslog_variab!es Инициализация константы диспетчера системных событий void define_syslogj/araibles (void) Эти константы в грядущем используются функциями системных событий (syslog). См. также: openlog(), syslog() и closelog(). openlog Подключение к диспетчеру системных событий (system logger) int openlog (string ident. int option, int facility) Функция не обязательна для использования. Она механически (при необходимости) вызывается функцией syslog(), и в этом случае аргумент ident (по умолчанию) используется со значением FALSE. Строка ident будет добавляться к каждому отсылаемому сообщению. Обычно используется при необходимости явственной передачи аргументов option и facility. Аргумент option используется для указания параметров при генерации системного события (log message). Могут использоваться следующие значения:
Возможно одновременное указание нескольких значений при помощи битового оператора ЛИБО, скажем: LOG_CONS | LOG_NDELAY LOG_PID. Аргумент facility указывает вид приложения, посылающего сообщение. Это влияет на их обработку системой;
См. также: define_syslog_variables(), syslog() и closelog(). closelog Отключение от диспетчера системных событий int closelog(void) Использование функции необязательно. См. также: define_syslog_variables(), syslog() и openlog(). syslog Посылка системного сообщения Int syslog (int priority, string message) i В аргументе message укалывается содержание сообщения. Пары символов %т в этом сообщении заменяются на строку текущего сообщения об ошибке (strerror), представляющую значение еггпо. Аргу-/ мент priority является комбинацией уровня приложения и приоритета события. Его возможные значения (в порядке понижения приоритета):
define_syslog_vcr ablest); В системной документации должно быть указано, как установить индивидуальный обработчик системных событий. На системах Winch ws NT служба syslog эмулируется как Event Log. См. также: define_syslog_variables(), openlog(), closelog(). Общий низкоуровневый сетевой интерфейс fsockopen Открытие сокета Интернета либо домена Unix int fsockopen (string [udp://]hostname, int port [, int errno [, string errstr [, double timeout]]]) Инициирует поток подключения к Интернет (AF_INET, применяя TCP либо UDP) либо в домене Unix (AF_UNIX). Для доменов Интернет открывает сеанс подключения (TCP socket connection) с компьютером hostname через порт port. Значение hostname может быть либо полным доменным именем (FQDN), либо адресом IP. Для подключений UDP надобно видимо указывать протокол, скажем: «udp:// hostname». Для доменов Unix hostname может содержать путь к соке-ту, тогда значение port должно быть равно 0. Необязательным аргументом timeout позволено указать допустимый промежуток времени подключения в секундах. Функция возвращает дескриптор файла, как при открытии локального файла, тот, что позже этого может использоваться в функциях файлового ввода/вывода: fgets(), fgetss(), fputs(), fclose() и feof(). При происхождении ошибки возвращает FALSE и устанавливает системные значения номера и сообщения причины ошибки в аргументы (они обязаны передаваться по ссылке) errno и errstr. Если возвращается FALSE, а аргумент errno равняется 0, то это обозначает, что оплошность случилась до вызова функции (возможная причина в инициализации сокета). По умолчанию сеанс открывается в эксклюзивном (блокированном) режиме. См. функцию socket_set_blocking(). $fp = fsockopen fputs ($fp. "GET / HTTP/1 0\r\n\r\n"); Последующий пример показывает получение даты и времени от UDP службы «daytime» (порт 13) на локальной машине. $fp = fsockopen См. также: pfsockopen(), socket_set_blocking(), socket_set_timeout(), fgets(), fgetss(), fputs(), fclose() и feof(). pfsockopen Открытие устойчивого подключения j int pfsockopen (string hostname, int port [, int errno _jy [, string errstr [, int timeout]]]) Функция всецело подобна fsockopen() с той разницей, что подключение не закрывается по окончании сценария. socket_get_status Получение статуса подключения array socket_get_status (resource socket_get_status) Возвращает в массиве информацию об открытом подключении. В настоящее время возвращаются четыре элемента:
См. также: accept_connect(), bind(), connect(), listen(), strerror(). socket_set _timeout Установка периода timeout для сокета bool socket_set_timeout (int socket_descriptor, int seconds, int microseconds) Устанавливает для подключения socket_descriptor длительность периода ожидания итога, это сумма аргументов seconds (секунды) и microseconds (микросекунды). $fp = fsockopen("www.php net". 80). См. также: fsockopen() и fopen(). socket_set_blocking Установка режима блокирования int socket_set_blocking (int socket_descriptor, int mode) Если в аргументе mode указывается значение FALSE, то обозначенный дескриптором socket_descriptor сокет переводится в неблокируемый режим. Отвратное происходит при TRUE. Это воздействует на вызовы функций чтения, подобные fgets(), которые исполняются незамедлительно в неблокированном режиме либо, наоборот, ожидают разблокировки (получения читаемых данных). Низкоуровневый сетевой (сокет) интерфейс Эта группа функций позволяет использовать низкоуровневый сетевой интерфейс и выступать как в качестве сервера, так и в качестве клиента. Для возможности их использования они обязаны быть разрешены при компиляции директивой --enable-sockets. Подразумевается, что вы имеете представление о том, как работает данный интерфейс на уровне системы. Исключительно глобальный сетевой интерфейс предоставляют сокет-функции fsockopen() и pfsockopen() (их проще использовать в том случае, если вам не требуется создание сервера). Пример 1. Простой TCP/IP сервер Данный пример иллюстрирует реализацию простого сервера, отвечающего на запросы. Измените адрес и порт по вашему усмотрению. Подключиться к этому серверу позволено с подмогой сетевого клиента, скажем командой: telnet 192.168.1.53 10000 (параметры: ваш адрес и используемый порт). Все, что будет посылаться на сервер, будет на нем выводиться и возвращаться эхом клиенту. Для прекращения сеанса связи введите 'quit'. <?php Пример 2. Легкой TCP/IP клиент Данный сценарий получает страницу через HTTP, отправляет запрос HEAD, выводит итог и завершается. <?php // принять ОТВEТ (заголовок) while socket Создание сокета int socket (int domain, int type, int protocol) Сделает финальную точку сетевой коммуникации (сокет) и возвращает его дескриптор. При ошибке возвращает отрицательное значение кода ошибки, которое позже этого может быть передано в функцию strerror() для получения текстового объяснения причины ошибки. Аргументом domain указывается тин сети, в которой создастся сокет; %. допустимые значения: AF JNET и AF_UNIX. Аргумент type указывает тип создаваемого сокета; он может быть одним из следующих: SOCK_STREAM, SOCKJDGRAM, SOCKJEQPACKET, SOCK_RAW, SOCK RDM либо SOCK PACKET. Аргумент protocol определяет используемый протокол передачи данных. Огромнее подробная информация содержится в системной документации. См. также: accept_connect(), bind(), connect(), listen(), strerror() и socket_get_status(). close Закрытие сокета bool close (int socket) Закрывает сокет, указанный дескриптором, и возвращает TRUE либо FALSE (при ошибке либо при недопустимом дескрипторе). Заметьте: функция не может использоваться с файловыми дескрипторами РНР, сделанными fopen(), popen(), fsockopen(), psockopen(); она работает только с теми, которые сделаны функциями socket() либо accept_connect(). См. также: bind(), listen(), socket(), socket_get_status() и strerror(). connect Подключение к сокету int connect (int socket, string address [, int port]) Инициирует подключение, применяя дескриптор socket (тот, что должен быть ранее успешно сделан функцией socket()). Возвращает О либо, при ошибке, отрицательное значение кода ошибки, которое позже этого может быть передано в функцию strerror() для получения текстового объяснения причины ошибки. Аргумент address должен содержать либо адрес IP, в формате с разделением точками (скажем: 127.0.0.1), если socket принадлежит семейству AF_INET; либо строку пути к соксту в домене Unix, если он из семейства AFJJNIX. Аргумент port используется только для AF_INET сокет и определяет порт удаленной машины, к которому производится подключение. См. также: bind(), listen(), socket(), socket_get_status() и strerror(). bind Привязка сокета к адресу int bind (int socket, string address [. int port]) Назначает socket (тот, что должен быть ранее удачно сделан функ-дней socket()) IP-адресу address. Возвращает 0 либо, при ошибке, от-рнцатсльное значение кода ошибки, которое позже этого может быть передано в функцию strerror() для получения текстового объяснения причины ошибки. Аргумент должен содержать либо адрес IP, в формате с разделением точками (скажем: 127.0.0.1), если сокет принадлежит семейству AF_INET; либо строку пути к,сокету и домене Unix, если он из семейства AFJJNIX. Аргумент port используется только для AF_INET сокет и определяет порт удаленной машины, к которому производится подключение. Заметьте: для подключения (в качестве клиента) используется функция connect(), эта же функция разрешает выступать в роли сервера (для этого дополнительно используются функции accept_connect() и listen()). См. также: accept_connect(), connect(), listen(), socket(), socket_get_ status() и strerror(). listen Разрешение приема данных из сокета int listen (int socket, int backlog) Позднее того как функцией socket() сделан сокет и он назначен адресу (его порту) функцией bind(), эта функция разрешает системе ожидать получения внешних данных и перенаправлять их в socket. Аргумент backlog указывает максимальное число входящих и воспринимаемых подключений. Функция применима только к типам сокетов: SOCK_STREAM либо SOCK SEQPACKET. Возвращает 0 либо, при ошибке, отрицательное значение кода ошибки, которое позже этого может быть передано в функцию strerror() для получения текстового объяснения причины ошибки. См. также: accept_connect(), bind(), connect(), socket(), socket_get_status() и strerror(). accept_ connect Прием данных от сокета int accept connect (int socket) Позднее того как функцией socket() сделан сокет, и он был назначен адресу (его порту) функцией bind(), и функцией listen() было разрешено принимать входящие подключения; эта функция указывает системе принимать внешние данные из socket. Возвращает новый сокет-дескриптдр либо, при ошибке, отрицательное значение кода ошибки, которое позже этого может быть передано в функцию strerror() для получения текстового объяснения причины ошибки. Возвращаемый дескриптор используется исключительно для обмена данными с клиентами подключений. Исходный дескриптор тем не менее остается действительным и может использоваться. При происхождении нескольких входящих подключений используется первое; при их отсутствии функция будет ожидать их происхождения. Если socket был разблокирован функцией socket_set_blocking() (либо set_ nonblockO), при отсутствии входящих данных функция завершается с соответствующим кодом ошибки. См. также: bind(), connect(), listen(), socket(), socket_get_status() и strerror(). read Получение данных от сокета int read (int socket_des, string Sbuffer, int length) Функция читает данные из socketjies (сокет-дсскриптор, «воссозданный» функцией accept_connect()) в буфер Sbuffer, в объеме байтов, указанном length. Чтение завершается ранее, если встречается символ <<\n», <<\t» либо «\0». Возвращает число прочитанных байтов. См. также: accept_connect(), bind(), connect(), listen(), strerror(), socket_get status() и write(). write Запись данных в сокет int write (int socket_des, string Sbuffer, int length) Записывает в сокет socketjjes содержимое буфера Sbuffer в объеме length байтов. См. также: accept_connect(), bind(), connect(), listen(), read(), strerror() и socket_get_status(). strerror Получение изложения ошибки сокета string strerror (int errno) Принимаемый аргумент errno является значением, возвращаемым одной из сокет-функций. Возвращается строка текста, объясняющая код ошибки. Это делает огромнее удобным разбор причин неработоспособности. <?php Если указанный сценарий будет исполняться не с административными привилегиями (root), то скорее всякого он выведет: «Причина ошибки в bind(): Permission denied». См. также: accept_connect(), bind(), connect(), listen(), socket() и socket_ get_status(). Библиотека CURL (Client URL Library) PHP поддерживает библиотеку libcurl, сделанную Даниелем Стенбер-гом (Daniel Stenberg), которая позволяет осуществлять подключение и взаимодействие с разными типами серверов, применяя различные протоколы. В настоящее время libcurl поддерживает протоколы: http, https, ftp, gopher, telnet, diet, file, Idap. Также библиотека поддерживает сертификаты HTTPS, методы HTTP POST и PUT, загрузку с FTP и HTTP, прокси, cookies и аутентификацию пользователя с паролем. Для того чтобы использовать функции CURL, необходимо установить пакет (package) CURL (его позволено загрузить с http://curl.haxx.se/). РНР необходима версия CURL 7.0.2-beta либо выше. Позже этого нужно перекомпилировать РНР с параметром — with-curl[=DIR], где DIR указывает на месторасположение каталога, содержащего каталоги lib и include. В каталоге include должна находиться папка curl, содержащая файлы easy.h n curl.h, а в каталоге lib должен находиться файл libcurl.a. Схема использования функций проста: сначала инициализируется сессия CURL, применяя функцию cur'MnitO, при этом устанавливаются параметры передачи, с которыми она будет выполнена функцией curl_exec(); позднее чего сессия может быть завершена с помощью curl_ close(). Дальше приводится пример, возвращающий домашнюю страницу РНР и сберегающий ее в файле. <?php curl_ init Открытие сеанса CURL int cur!_init ([string url]) Инициализирует новую сессию и возвращает дескриптор CURL, дальше используемый функциями curl_setopt(), curl_exec() и curl_close(). В функции позволено указать добровольный аргумент url, в грядущем используемый как параметр CURLOPT_URL, тот, что также позволено установить функцией curl_setopt(). <?php См. также: curl_close(), curl_setopt(). curl_setopt Установка параметров передачи CURL boo! curl_setopt (int ch, string option, mixed value) Функция устанавливает параметр, имеющий имя option сессии CURL с именем ch, в значение value. Для следующих возможных значений аргумента option соответствующее значение value должно указываться в виде целого числа (тип long):
Для следующих возможных значений аргумента option соответствующее значение value должно указываться в строковых значениях (тип string):
Не пытайтесь осуществить это, не выяснив заранее, поддерживает ли сервер указанную команду. Для следующих возможных значений аргумента option соответствующее значение value должно указываться дескриптором, полученным от функции fopen():
curl_exec Выполнение CURL сессии bool curt_exec (int ch) Исполняет подготовленную сессию. Эта функция должна вызываться позднее инициализации сессии CURL session и позднее того, как все параметры сессии будут установлены. curl_ close Закрытие сеанса void curl_close (int ch) Закрытие сессии с освобождением всех источников (также удаляется и дескриптор сессии CURL ch). curl_ version Получение версии string curl_version (void): Возвращает текущую версию CURL. Отправление почтового сообщения bool mail (string to, string subject, string message [. string additional_headers]) Механически отсылает сообщение электронной почты (применяя системную функцию) с «темой» subject и содержимым message адресату to. Для указания нескольких адресатов в строке to разделяйте их запятой. . "Моя тема". "Здорово \пмне \nот пеня"), При указании четвертого строкового аргумента эта строка будет добавляться в конец заголовка, указывая дополнительные заголовки (если их несколько, их следует разделять символом перехода на новую строку «\n»). mail("nobodyPaol com", Достаточно просто конструировать комплексные сообщения. /* получатели */ ezmlm_ hash Вычисление хеша EZMLM int ezralra_hash (string addr) Вычисляет хеш, надобный для сохранения списков рассылки в базе данных MySQL. $usег = "knsPkoehntopp de"; Для того чтобы использовать следующие функции, надобно перекомпилировать РНР с параметром --with-imap (для этого клиентские библиотеки С обязаны быть установлены). Последнюю версию для компиляции позволено загрузить с ftp://ttp.cac.washington.edu/imap/. Позволено также подключить модуль динамически. Несмотря на имя модуля, имеющиеся в нем функции разрешают исполнять также много других пригодных операций, выходящих за рамки простого использования протокола IMAP. Лежащая в основе библиотека С-клиента также поддерживает NNTP, РОРЗ и методы доступа к локальным почтовым ящикам. Чтобы разобраться в том, что разрешают делать функции, полезно ознакомиться (. перечисленными ниже документами RFC.
Детальное рассмотрение функционирования систем работы с электронной почтой позволено найти в книгах: «Programming Internet Email» (David Wood) и «Managing IMAP» (Dianna Mullet и Kevin Mullet). Дальше под ящиками подразумеваются как папки верхнего уровня, так и вложенные. imap_open Подключение к серверу (открытие почтового ящика) int imap_open (string mailbox, string username, string password [, int flags]) Возвращает дескриптор открытого почтового ящика IMAP (дескриптор подключения к серверу IMAP) либо значение FALSE при ошибке. Эту функцию позволено также использовать для подключения к серверам РОРЗ и NNTP, но некоторые функции будут недоступны. В аргументе mailbox указывается имя сервера и путь к почтовому ящику. Имя сервера заключается в фигурные скобки «{» и «}», и состоит из: имени сервера (либо его IP-адреса), возможного указания протокола (начинающегося со слеша '/') и необязательного значения номера порта подключения (начинающегося с двоеточия «:»). Имя сервера необходимо указывать непоколебимо; бывает пригодно указывать имя сервера в переменной, но следует рассматривать, что фигурные скобки имеют специальное значение для переменных в строках в двойных кавычках, следовательно открывающую скобку следует предварять слешем, скажем: "\{$SERVER/pop3:110}INBOX". Специальное значение — имя INBOX, обозначающее стержневой ящик пользователя (папка Входящие). Если имя ящика включает какие-либо символы помимо английских печатных ASCII, то их нужно закодировать функцией imap_utf7_encode(). Разделителем иерархии почтовых ящиков обычно является слеш, но для некоторых серверов им также может быть точка, скажем: «INBOX. Current. Important. Work». Аргументами username и password указываются имя и пароль пользователя. В аргументе flags указываются параметры открытия в виде битовой маски):
(См. также: imap_delete() и imap_expunge()). Для подключения к серверу ШАР, использующему порт 143 на локальной машине, используйте: $mbox = imap_open ("{localhost:143}INBOX". Для подключения к серверу РОРЗ, использующему порт 110 на локальной машине, используйте: $mbox = imap_open Для подключения к серверу NNTP, использующему порт 119 на локальной машине, используйте: $nntp = imap_open ("{localhost/nntp:119} Последующий пример показывает подключение к серверу ШАР «your.imap.host» и вывод имеющихся ящиков и сообщений для пользователя «username». $mbox = imap_open ("{your imap.host:143}", В общем случае должно быть выведено нечто как бы последующего: Ящики Mailboxes imap_reopen Переподключение (выбор другого ящика) int imap_reopen (int imap_stream, string mailbox [, string flags]) Функция подобна imap_open() с тем отличием, что она не создает новый дескриптор подключения, а использует уже присутствующий imap_ stream (имя пользователя и его пароль не изменяются). Аргументы mailbox и flags аналогичны. Возвращает TRUE либо FALSE — при ошибке. imap_close Отключение от сервера int imap_close (int imap_stream [, int flags]) Функция закрывает поток подключения, связанный с дескриптором imap_stream. Если в аргументе flags указывается значение CL_EXPUNGE, то при закрытии ящика из него механически удаляются все сообщения, помеченные к удалению. imap_ping Проверка активности подключения int imap_ping (int imap_stream) Возвращает TRUE, если подключение вправду, либо FALSE, если оно разорвано. Вызов функции может использоваться для обнаружения свежих сообщений и для поддержания активности связи с серверами, разрывающими связь через определенный промежуток времени бездействия соединения. Но так как время исполнения сценария ограниченно (обычно полминуты), а время обрыва связи наступает через касательно длинный период (нередко 30 минут), то едва ли эта функция будет пригодна в web-сценариях. imap_listmailbox Получение списка почтовых ящиков array imapjistmailbox (int imap_stream, string ref, string pattern) Возвращает массив имен почтовых ящиков. Изложение аргументов см. в imap_getmailboxes(). $mbox = imap_open("{your imap host}". imap_getmailboxes Получение изложения почтовых ящиков array imap_getmail boxes (int imap_stream, string ref, string pattern) Возвращает массив объектов, содержащих изложения каждого ящика. Каждый объект имеет 3 знака: полное имя ящика папе, символ-разграничитель иерархии ящиков delimiter и битовое поле attributes, которое может состоять из следующих компонентов:
Имена ящиков могут содержать символы национальных алфавитов (из комплекта ASCII), которые могут быть закодированы и позже этого декодированы функцией imap_utf7jJecode(). Аргумент ref должен содержать обычную спецификацию сервера (его адреса), как в функции imap_open(), а аргумент pattern — указывать, с какого ящика начинать и пример для возвращаемых ящиков. В аргументе pattern могут быть указаны два специальных значения: «*» обозначает, что следует возвращать всю иерархию ящиков, а <<%>> -только текущий иерархический уровень (без вложенных ящиков). $mbox = imap_open("{your шар.host}", См. также imap_getsubscribed(). imap_createmailbox Создание почтового ящика int imap_createmailbox (int imap_stream, string mbox) Имя создаваемого ящика указывается в аргументе mbox. Имена, содержащие национальные символы, обязаны кодироваться функцией imap_utf() encode(). Возвращает TRUE либо FALSE — при ошибке. См гакжс: imapj-enamemailbox(), imap_deletemanbox() и imapj>pen(). $mbox = imap_openf"(your imap.host}" imap_ renamemailbox Переименование ящика int imap_renamemailbox (int imap_stream, string oldjnbox, string new_rabox) Имя ящика задается аргументом oldjnbox, а его новое имя — new_ mbox Формат этих аргументов см. в изложении функции imap_open(). Пример использования см. в функции imap_createmailbox(). Возвращает TRUE либо FALSE — при ошибке. См. также: imap_createmailbox(), imap_deletemailbox(), imap_open(). imap_ deletemaiibox Удаление почтового ящика int imap_deletemailbox (int imap_stream, string mbox) Имя ящика задается аргументом mbox, его формат см. в изложении функции imap_open(). Пример использования см. в функции imap_ createmailbox(). Возвращает TRUE либо FALSE — при ошибке. См. также: imap_createmai1box(), imap_renamemailbox() и imap_open(). imap_ check Проверка текущего ящика object imap_check (int imap_stream) Возвращает объект, содержащий информацию о текущем почтовом ящике, либо FALSE при ошибке. В объекте имеются следующие свойства:
$mbox - imap_open('{localhost}°."igor"."lgx324879". Выводит что-то подобное последующему: $tdClass Object imap_status Получение статуса указанного ящика object imap_status (int imap_stream, string mailbox, int options) Возвращает объект, содержащий информацию о почтовом ящике с именем mailbox, пли FALSE при ошибке. В объекте возвращаются свойства, в зависимости от указанного значения аргумента options:
Объект также содержит качество status-^flags, отражающее (в объединенном битовом поле), с какими параметрами он сделан. $mbox = шар_ореп("{your.imap host}". imap_ mailboxmsginfo Получение информации о текущем ящике object imapjnailboxmsginfo (int imap_stream) функция сходна с imap_status(), но дополнительно она вычисляет 0С,-рем всех сообщений, находящихся в ящике. Свойства возвращаемого объекта:
<?рhp imap_num_msg Получение числа сообщений в текущем ящике • nt imap_num_msg (int imap_stream) imap_num_recent Получение числа новых сообщений в текущем ящике int imap_num_recent (nnt imap_stream) imap_listsubscribed Получение списка активных ящиков array imap_listsubscribed (Int imap_stream, string ref, string pattern) У пользователя может быть сложная конструкция папок почтовой учетной записи, но, как водится, для синхронизации и отображения в программе почтового клиента выбираются только несколько (а к остальным обращения не происходит). Функция возвращает в массиве перечисление имен папок, выбранных для синхронизации. Она аналогична функции iraap_listmailbox(). imap_getsubscribed Получение изложения активных ящиков array imap_getsubscribed (int imap_stream, string ref, string pattern) Функция подобна imap_getmai"lboxes(), но она возвращает только имена тех ящиков, которые были выбраны для синхронизации. imap_ subscribe Активизация ящика int imap_subscribe (int imap_stream, string mbox) В грядущем ящик будет использоваться для синхронизации. Возвращает TRUE иди FALSE — при ошибке. imap_ unsubscribe Дезактивизация ящика int imap_unsubscribe (int imap_stream, string mbox) imap_ search Поиск в текущем ящике array imap_search (int imap_stream, string criteria, int flags) Функция возвращает список почтовых ящиков (поиск проходит рекурсивно в текущем ящике), в которых было обнаружено соответствие критерию, указанному в аргументе criteria. В строке критерия указываются желанные слова, поделенные пробелами; если надобно искать фразу, се следует заключать в двойные кавычки; перед комплектом слов указывается имя поля (позволено также указать флаги просматриваемых сообщений), в котором следует производить поиск. Возможно указывать следующие ключевые слова:
Скажем, чтобы найти все сообщения от отправителя Peter, на которые не был выслан итог, указывается: UNANSWERED FROM Peter. imap_scanmailbox Поиск текста в сообщениях array imap_scanmailbox (int imap_stream, string ref, string pattern, string content) функция подобна imapJistmailbox(), но она возвращает имена только тех ящиков, которые содержат в себе строку content. imap_fetch_overview Получение изложения сообщений array imap_fetch_overview (int imap_stream, string sequence [, int flags]) Возвращает в массиве объекты, содержащие информацию о сообщениях, номера которых перечислены в строке sequence. Эта строка должна содержать номер либо номера через запятую без пробелов; позволено указать диапазон разделителем «двоеточие» (:). Если в значении аргумента указана константа FTJJID, это указывает на то, что номера являются уникальными идентификаторами UID. Каждый объект массива может иметь следующие свойства:
Smbox = imap_open("{your л map host:143}". Выводится информация последующего вида: Array imap_ headers Получение списка сообщений текущего ящика array iroapjieaders (int imap_Streara) Возвращает массив, соДержащий заголовки имеющихся сообщений. Сообщения вложенных папок не просматриваются. См. пример в функции imap_open(). imap_header Синоним функции imap_headerinfo object imapjieader (int stream, int msgjiumber , int fromlength subjectlength , string defaulthost]]]) imap_headerinfo Просмотр заголовка сообщенИя object imap headerinfo (imap_stream, int msg_number) int fromlength [, int Subjectlength [. string defaulthost]]]) Возвращает объект, содержащии различные элементы информации о сообщении. $mbox = imap_open Будет выведено примери" следующее: stdClass Object ( В объекте, как вы можете видеть, возвращаются следующие значения:
Конструкция и формат записей определяются реализацией серверного интерфейса и могут прочно различаться для разных систем (исключительный способ узнать это — проверить на практике). В большинстве случаев для сообщений протоколов ШАР, РОРЗ и NNTP форматы информационных полей идентичны. Для news-сообщений дополнительно возвращается качество newsgroup. Пары полей date, Date и subject, Subject обычно совпадают. В message_ id хранится уникальный хеш сообщения (идентификатор UID), а в Msgno - относительный порядковый. В записях Size и udate возвращается соответственно размер сообщения в байтах и время в формате UNIX Timestamp. Адресная информация возвращается как в целостном, так и поделенном па составляющие виде. В большинстве случаев адреса fromaddress, reply_toaddress и senderaddress совпадают. Если у сообщения имеется поле Сс: (отправить копии вторичным получателям), то также возвращается адрес ccaddress. Флат сообщения соответственно обозначают: только что пришедшее сообщение, непрочитанное сообщение, помеченное как «Важное», сообщение на которое был написан итог, сообщение, маркированное к удалению, и черновик сообщения. Три дополнительных аргумента используются редко. imap_sort Сортировка заголовков array imap_sort (int stream, int criteria, int reverse, int options) Возвращает массив номеров сообщений, сортированных по критерию. Если в аргументе reverse указывается значение, то происходит обратная сортировка. В аргументе criteria позволено указывать одно из следующих значений:
Флаги options аргумента могут (побитово) включать следующие значения:
imap_fetchstructure Получение полной информации о сообщении object. imap_fetchstructure (int iraap_streara, int msgjiumber [, int flags]) Информация возвращается в объекте, она описывает формат и конструкцию сообщения в текущем ящике, указанном порядковым номером msgjiumber. Если в аргументе flags указывается значение FTJJID. это свидетельствует о том, что в аргументе msgjiumber указан не номер сообщения, а его идентификатор UID. В объекте присутствуют следующие объекты (его конструкция прочно варьируется):
Тип type основного тела может определяться следующими значениями:
Типы кодировки encoding:
Для простого сообщения возвращает объект такого вида: stdClass Object Для сложного сообщения1 возвращает объект последующего вида: stdClass Object imap_fetchheader Получение заголовка сообщения string imap_fetchheader (int imap_stream, int msgno, int flags) Возиращается полный, нефильтрованный заголовок (формата RFC822) сообщения с номером msgno в текущем ящике. В аргументе flags могут быть указаны следующие значения (их позволено бинарно комбинировать):
imap_body Получение сообщения string imap_body (int imap_stream, int msg_number [, int flags]) Возвращает тело сообщения с номером msgjiumber в текущем ящике. В аргументе fI ags могут быть указаны следующие значения (их позволено бинарно комбинировать):
Функция возвращает полную точную копию сообщения (как есть). С ее подмогой позволено прочитать простые сообщения. Для сложных (составных) сообщений функция может воротить просто строку: «This is a multi-part message in MIME format» («Это сообщение в формате MIME состоит из нескольких частей»). Чтобы извлечь отдельные его части и обработать соответственно MIME-кодировке, пользуйтесь функциями imap_fetch_structure() и imap_fetch_body(). imap_fetchbody Получение части сообщения string imap_fetchbody (int imap_stream, int msgjiumber. string partjiumber [, flags flags]) Возвращает часть тела сообщения с номером msgjiumber в текущем ящике. Спецификация указания перечисления номеров секций в аргументе partjiumber определяется IMAP 4 (в тривиальном случае это может быть простейший номер части, где 0 — основная часть, 1 и дальше — вложенные). В аргументе flags могут быть указаны следующие значения (их позволено бинарно комбинировать):
Скажем, для сложного сообщения, конструкция которого приведена в примере функции imap_fetchstructure(), содержание частей может быть последующим. Это основная часть сообщения (при вызове imap_fetchbody($m,l,0);): X-F: <ig@igor > Sun May 13 01:41:00 Это первая вложенная часть (при вызове imap_fetchbody($m,l,l);): Привет. Это вторая вложенная часть (при вызове imap_fetchbody($m,l,2);): <!DOCTYPE HTML PUBLIC " bnap_uid Получение DID сообщения из порядкового номера int imap_uid (int imap_stream, int msgno) Возвращается уникальный идентификатор сообщения UID. Он отличается от номера неизменностью, так как номера псревычисляются при удалении сообщений. Действие функции обратно imapjnsgno(). echo imap_uid($mbox.l); imap_msgno Получение порядкового номера сообщения из UID int imapjnsgno (int imap_stream, int uid) Действие функции обратно imap_uid(). imap_setflag_full Установка флагов сообщения string imap_setflag_fu"n (int stream, string sequence, string flag, string options) В аргументе sequence указывается перечисление номеров сообщений, для которых надобно установить флаги, указанные в аргументе flag. Флат (согласно RFC2060) обозначаются: "\\Sccn", "\\Answered", "\\Flagged", "\\Deleted", "\\Draft", и "\\Rccent". В аргументе options может быть указано значение STJJID, указывающее на то, что в аргументе sequence указан уникальный идентификатор UID. $mbox =- imap_open("{your.I map.host:143}". imap_clearflag_ full Сброс флагов сообщения string imap_clearf!ag_fun (int stream, string sequence, string flag, string options) Действие функции противоположно imap_setflag_fuTI(). См. изложение в imap_setf1ag_fun(). imap_delete Маркировка сообщения как удаленного int imapjJelete tint imap_stream, int msg_number [, int flags]) Возвращает TRUE. В аргументе msg_number указывается номер сообщения, а в flags (при значении FTJJID) - является ли номер идентификатором. Сообщения, помеченные к удалению, остаются в ящике, пока не будет вызвана функция imap_expunge() либо подключение (с установленным флагом CL_EXPUNGE) не будет закрыто функцией imap_close(). \ Smbox - imap_open ("{your miap.hostJINBOX".
imap_undelete Восстановление удаленного сообщения int imap_undelete (int imap_stream, int msg_number) Функция удаляет флаг удаления с сообщения с номером msgjiumber. Данный флаг ранее можег быть установлен функциями imap_delete(), imapjnail_move() либо imap_setflag_full(). Возвращает TRUE либо FALSE — при ошибке. imap_ expunge Удаление «удаленных» сообщений int imap_expunge (int imap_stream) Всецело удаляет из ящика сообщения, имеющие флаг "\\Dcleted", тот, что может быть установлен функциями imap_delete(), imap_mail_ move() либо imap_setflag_full(). Возвращает TRUE. imap_mail_copy Копирование сообщения в ящик int -imapjnail_copy (int imap_stream, string msglist, string mbox [. int flags]) Возвращает TRUE либо FALSE — при ошибке. Перечисление номеров копируемых сообщений указывается в стро-I ковом аргументе msglist. Их следует перечислять через запятую, без пробелов, диапазоны указываются знаком двоеточия. См. также документ RFC2060. Ящик назначения, указываемый в аргументе mbox, указывается без имени сервера. В аргументе flags позволено указывать битовую маску из следующих констант:
imap_mail_copy($m. "1.3 5"."INBOX/Текущие"): imap_mail_move Перемещение сообщения в ящик int imapjnailjnove (int imap_stream, string msglist, string robox [. int flags]) Функция аналогична вызову: imap_mail_copy(imap_stream, msglist, mbox, flags | CP_MOVE ); imap_alerts Получение сообщения IMAP array imap_alerts (void) Возвращается массив, содержащий все извещения, посланные сервером от начала подключения либо позднее прошлого вызова данной функции. imap_mime_header_decode Декодирование элементов MIME заголовков array imap_header_decode (string text) Функция декодирует расширенные заголовки, посланные не в тексте ASCII (см. RFC2047). Декодированные элементы возвращаются в массиве объектов, каждый из которых содержит пару "charset" и "text" (кодировка и содержимое текста). Если заголовки не были закодированы (то есть они передавались в кодировке US-ASCII), значение элемента "charset" будет равно "default". $teAt="*?ISO-8859-l?Q?Keld_> Выводит следующее: Arrayt imap_mail_compose Создание сообщения MIME по примеру string imapjrtan_compose (array envelope, array body) <?php imap_append Создание сообщения в ящике int imap_append (Int imap_stream, string mbox, string message [, string flags]) Возвращает TRUE либо FALSE — при ошибке. В аргументе message содержится текст сообщения, включая текст заголовка. Для многих серверов надобно обозначать конец строк парой символов «\r\n». В аргументе flags позволено указать флаги, присваиваемые сообщению. , $stream = imap_open("( imap_ mail Посылка email string imapjnail (string to, string subject, string message [, string additionaljieaders [, string cc [, string bcc [, string rpath>) Функция пока доступна только в PHP 3. Вспомогательные функции imap_last_error Получение изложения последней ошибки string imap_last_error (void) Возвращается строка, содержащая полное изложение ошибки ШАР (если она имелась), произошедшей в ходе исполнения сценария. Стек сообщений не изменяется, и повторный вызов функции возвратит то же значение (если других ошибок не случилось). imap_errors Получение всех возникших ошибок array imap_errors (void) В массиве возвращаются строки изложения ошибок ШАР, произоше/ тих от начала подключения либо с момента последнего вызова дан ной функции. Вызов функции всецело очищает стек ошибок. imap_qprint Конвертация строки quoted-printable в 8-bit string imap_qprint (string string.j Способ конвертации описан в RFC2045, раздел 6.7. / Возвращает двоичную, 8-битную строку. См. также imap_8bit(). imap_8bit Конвертация строки 8bit в quoted-printable string imap_8bit (string string) Способ конвертации описан в RFC2045. Возвращает строку, «цитированную для печати». print imap_8bit("The Привет"), См. также imap_qprint(). imap_ binary Конвертация строки 8bit в base64 string imapjjinary (string string) Процедура конвертации описана в RFC2045. Возвращает строку в формате base64. print imap_tnnary("The Привет"); См. также imap_base64(). imap_base64 Декодирование BASE64 string imap_base64 (string text) Процедура конвертирования описана в RFC2045. См. также imap_binary(). imap_rfc822_write_address Форматирование строки адреса string imap_rfc822_write_address (string mailbox, string host, string personal) Возвращает строку адреса электронной почты, сформированную из заданных значений согласно правилам, указанным в RFC822. print imap_rfc822_write_address imap_rfc822_parse_adrlist Интерпретация адреса array imap_rfc822_parse_adrlist (string address, string default_host) Исходная строка с перечислением почтовых адресов, записанных в формате RFC822, указывается в аргументе address. Аргумент содержит имя хоста, добавляемое к адресу, если в нем таковое отсутствует. Возвращается массив объектов, каждый из которых может иметь следующие свойства:
$address_stnng = "Igor Grigin Будет выведено следующее: Arrayt [0] => stdClass Object Функция сходна с imap_header(), но информацию она получает не с сервера ШАР, а из строки headers.imap_utf7_decode Декодирование строки UTF-7 string imap_utf7_decode (string text) Возвращает достоверную строку либо FALSE — в случае ошибки. Эта кодировка нередко используется для адресов почтовых ящиков, содержа-! щих национальные символы (скажем, символы кириллицы). Функ-/ ция использует модифицированный алгоритм, описанный в RFC2060, раздел 5.1.3 (устаревший алгоритм» был описан в RFC1642). imap_utf7_encode Кодирование строки 8bit в UTF-7 string imap_utf7_encode (string data) imap_utf8 Конвертация текста в UTF8 string imap_utf8 (string text) Конвертация описана в RFC2044. |