Функции, описанные в этой главе, позволяют осуществлять обмен данными по сети. По сравнению с функциями работы с файлами сетевые функции работают на более низком уровне, что позволяет добиться большей гибкости и полного доступа к данным.
10.1. Общие операции ввода-вывода
Функции, которые описываются в этом разделе, предназначены для обеспечения общего и упрощенного доступа в Internet. Некоторые из этих функций работают с определенными сетевыми службами или возвращают информацию о них.
checkdnsrr
Функция checkdnsrr используется в качестве псевдонима функции dns_check_record.
boolean dns_check_record(string host, string type)
Функция dns_check_record (листинг 10.1) производит проверку DNS-записей узла. Аргумент определяет тип искомых записей. (Допустимые типы приведены в табл. 10.1.) Если тип не задан, функция dns_check_record выполняет проверку записей типа MX. Типы записей можно посмотреть на man-странице, посвященной демону сервера доменных имен Internet (Internet domain name server).
| Листинг 10.1. Функция dns_check_record_
<?php
if(dns_check_record("php.net", "MX")) {
print("php.net является утилитой обмена почтой");
}
boolean dns_get_mx(string host, array mxhost, array weight)
Функция dns_get_mx (листинг 10.2) принимает DNS-записи почтовой системы. Имена узлов прибавляются к массиву, определенному аргументом mxhost. Необязательный массив weight хранит весовые коэффициенты узлов. Возвращаемое значение определяет успешность завершения операции. Пример использования функции dns_get_mx для проверки адресов электронной почты приведен в главе 24, "Сети".
| Листинг 10.2. Функция dns_get_mx_
<?php
//получить записи почтовой программы для netscape.com dns_get_mx("netscape.com", $mxrecord, $weight); // отобразить результаты foreach($mxrecord as $key=>$host)
{
print("$host - $weight[$key]<br>n");
}
array dns_get_record(string hostname, integer type, array authoritative, array additional)
Функция dns_get_record для заданного узла возвращает массив с записями о ресурсах DNS. Каждый элемент массива сам является ассоциативным массивом. В табл. 10.2 приведены вероятные элементы возвращаемого массива. Необязательный аргумент type управляет возвращаемой записью. В табл. 10.3 приведены допустимые типы констант.
По умолчанию PHP делает попытку вернуть записи любого типа, что задается установкой типа DNS_ANY. В зависимости от операционной системы режим, принятый по умолчанию, может не возвратить все имеющиеся записи. Установка режима DNS_ALL приводит к возвращению всех записей. При работе на платформе Windows эта функция отсутствует.
Необязательный аргумент authoritative принимает массив записей от сервера авторизации имен (authoritative name server). Необязательный аргумент additional принимает массив дополнительных записей.
integer fsockopen(string hostname, integer port, integer error_number, string error_description, double timeout)
Функция fsockopen (листинг 10.3) открывает сетевое соединение как файловый поток, возвращающий дескриптор файла, с которым могут работать функции fputs, fgets и другие функции, работающие с файловыми потоками. Соединение с узлом производится через указанный порт. Имя узла может быть представлено цифровым IP-адресом или доменным сокетом Unix, но в таком случае номер порта устанавливается равным 0. Некоторые операционные системы, в частности Windows, не поддерживают работу с доменными сокетами Unix. Для замены протокола, используемого для соединения, имя узла предваряется префиксом, содержащим квалификатор протокола. Добавление префикса udp:// откроет UDP-соединение, а добавление префикса ssl:/ / или tls:// откроет соединение SSL или TLS соответственно, но только если PHP работает с расширением OpenSSL.
В случае ошибки возвращается значение FALSE и устанавливаются необязательные аргументы error_number и error_description. Если возвращается нуль, это значит, что ошибка произошла до того, как PHP сделал попытку подключиться. Это может быть связано с проблемами инициализации сокета.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операции ввода-вывода на сетевом уровне
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операционная система. Часть Тридцатая. | PHP. Операции ввода-вывода на сетевом уровне. Часть Вторая. |