ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Операции ввода-вывода на сетевом уровне


28-12-2009

Функции, описанные в этой главе, позволяют осуществлять обмен данными по сети. По сравнению с функциями работы с файлами сетевые функции работают на более низком уровне, что позволяет добиться большей гибкости и полного доступа к данным.
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 сделал попытку подключиться. Это может быть связано с проблемами инициализации сокета.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Операционная система. Часть Тридцатая. PHP. Операции ввода-вывода на сетевом уровне. Часть Вторая.