Смекни!
smekni.com

Учебник php (стр. 20 из 26)

vm_delalias
Удаляетвсевдоним.

Синтаксис :
int vm_delalias(string vdomain, string basepwd, string alias);

vm_deluser
Удаляет псевдоним виртуального пользователя.

Синтаксис :
int vm_deluser (string vdomain, string username);

Сетевые функции

ip2long
Производит конвертацию строки адреса IPv4 в число.

Синтаксис :
int ip2long(string ip_address);

Функция ip2long() возвращает четырехбайтовое численное представление адреса IP v4 из строки (числа, разделенные точками, например: "127.0.0.1").

// получить IP адрес хоста$ip=gethostbyname("www.php.net");echo "Следующие URL эквивалентны:<br>";echo "http://www.php.net/, http://".$ip."/, и http://".ip2long($ip)."/<br>";

long2ip
Производит конвертацию числа в строку адреса IP v4.

Синтаксис :
string long2ip(int proper_address);

Функция long2ip() возвращает строковое представление IP-адреса (в формате: "aaa.bbb.ccc.ddd") из численного представления.

gethostbyaddr
Возвращает имя хоста, который соответствует заданному IP-адресу.

Синтаксис :
string gethostbyaddr(string ip_address);

Функция gethostbyaddr() возвращает доменное имя хоста, заданного своим IP-адресом. В аргументе указывается адрес IP в строковом формате. В случае ошибки возвращает ip_address.
Надо отметить, что функция не гарантирует, что полученное имя на самом деле будет соответствовать действительности. Она лишь опрашивает хост по адресу ip_address и просит его сообщить свое имя. Владелец хоста, таким образом, может передавать все, что ему заблагорассудится.

echo gethostbyaddr("127.0.0.1");

gethostbyname
Возвращает IP-адрес хоста.

Синтаксис :
string gethostbyname(string hostname);

Функция gethostbyname() получает в параметрах доменное имя хоста и возвращает его IP-адрес. Если адрес определить не удалось, функция возвращает hostname.

gethostbynamel
Возвращает список IP-адресов хоста.

Синтаксис :
array gethostbynamel(string hostname);

Одному доменному имени может соответствовать сразу несколько IP-адресов, и в случае сильной загруженности серверов DNS-сервер сам выбирает, по какому IP-адресу перенаправить запрос. Он выбирает тот адрес, который использовался наиболее редко.
Функция gethostbynamel() возвращает не один, а все IP-адреса хоста с именем hostname.

Стоит заметить, что в Интернете существует множество виртуальных хостов, которые имеют различные доменные имена, но один и тот же IP-адресс. Таким образом, если следующая последовательность команд для существующего хоста с IP-адресом ip всегда печатает этот же адрес:

$host = gethostbyaddr($ip);echo gethostbyname($host);

то аналогичная последовательность для домена с DNS-именем $host, наоборот, может напечатать не то же имя, а другое:

$ip = gethostbyname($host);echo gethostbyaddr($ip);

getprotobyname
Производит определение номера порта, используемого протоколом.

Синтаксис :
int getprotobyname(string name);

getprotobynumber
Производит определение протокола порта.

Синтаксис :
string getprotobynumber(int number);

getservbyname
Производит определение протокола интернет-службы.

Синтаксис :
int getservbyname(string service, string protocol);

Эта функция возвращает номер порта, который использует служба service.
В аргументе protocol указывается тип протокола - TCP или UDP.

echo getservbyname("HTTP", "TCP"); // может вывести 80

getservbyport
Производит определение интернет-службы, которая использует заданный порт.

Синтаксис :
string getservbyport(int port, string protocol);

Здесь в аргументе protocol нужно указать тип протокола - TCP либо UDP.

echo getservbyport(21, "TCP"); // выведет: ftpecho getservbyport(23, "TCP"); // выведет: telnet

checkdnsrr
Производит проверку записи DNS.

Синтаксис :
int checkdnsrr(string host [, string type]);

Эта функция отправляет запрос DNS-серверу для поиска записей, которые имеются для хоста host. Если были найдены записи типа type, то функция возвращает true. В противном случае и при ошибке - false.

Аргумент typeможет принимать значения:

· A

· MX (по умолчанию)

· NS

· SOA

· PTR

· CNAME

· ANY

Аргумент host может указываться строкой в формате IP с разделением точками, либо быть именем хоста.

getmxrr
Производит получение MX записи для интернет-хоста.

Синтаксис :
int getmxrr(string hostname, array mxhosts [, array weight]);

Функция getmxrr() инициирует поиск в базе данных DNS записи MX (почтовый сервер домена) для хоста hostname.
Если запись найдена, возвращает true, если нет - то false.

Список записей MX заносится в массив mxhosts. Если указан массив weight, он заполняется дополнительной информацией о записях.

Введение

PHP имеет следующие типы ошибок и предупреждений:

Значение Константа Описание
1 E_ERROR Фатальная ошибка времени исполнения.
2 E_WARNING Предупреждение времени исполнения.
4 E_PARSE Сообщение интерпретации времени исполнения.
8 E_NOTICE Простое сообщение времени исполнения.
16 E_CORE_ERROR Фатальная ошибка при инициализации PHP.
32 E_CORE_WARNING Предупреждение инициализации.
64 E_COMPILE_ERROR Фатальная ошибка компиляции.
128 E_COMPILE_WARNING Предупреждение компиляции.
256 E_USER_ERROR Ошибки, определяемые пользователем.
512 E_USER_WARNING Предупреждения, определяемые пользователем.
1024 E_USER_NOTICE Сообщения, определяемые пользователем.
2047 E_ALL Все перечисленные сообщения.



Указанные значения в виде чисел или констант можно комбинировать, формируя битовую маску ошибок, о которых необходимо сообщать в ходе исполнения сценария. Для комбинирования используются битовые операторы, но в конфигурационном файле php.ini распознаются только "|", "~", "!" и "&".

В PHP 4 по умолчанию разрешены сообщения вида E_ALL & ~E_NOTICE, то есть сообщаться должно все, кроме обычных сообщений. Можно переопределить эту установку параметром файла конфигурации error_reporting() (ее также можно указывать в файлах конфигурации сервера Apache).

Если при вызове функции перед ее именем указать символ "@", то в случае возникновения ошибки в этой функции сообщение о нем выдаваться не будет.

В настоящее время оператор игнорирования ошибок блокирует даже выдачу сообщений о критических ошибках, при возникновении которых сценарий досрочно завершается.

Если разрешен параметр конфигурации track_errors, то сообщение об ошибке сохраняется в глобальной переменной $php_errormsg.

<?// определенный пользователем обработчик ошибокfunction userErrorHandler($errno,$errmsg,$filename,$linenum,$vars) { // время возникновения ошибки $dt=date("Y-m-d H:i:s (T)"); $errortype = array( 1 => "Error", 2 => "Warning", 4 => "Parsing Error", 8 => "Notice", 16 => "Core Error", 32 => "Core Warning", 64 => "Compile Error", 128 => "Compile Warning", 256 => "User Error", 512 => "User Warning", 1024 => "User Notice" ); $err.="время ($dt), номерошибки ($errno), "; $err.="типошибки (".$errortype[$errno]."): "; $err.="&bsol;"$errmsg&bsol;".файл &bsol;"$filename&bsol;", строка ("; $err.=$linenum.")&bsol;n"; $user_errors=array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); if(in_array($errno, $user_errors))// выдать сообщение для ошибок пользователя echo $err; // сохранить событие ошибки в системном журналеerror_log($err, 3, "/usr/local/php4/error.log");} // установить уровень контроля ошибок и обработчикerror_reporting(0); // не выводить сообщения PHP$old_error_handler=set_error_handler("userErrorHAndler"); // неопределенная константа вызывает предупреждение$t=_NOT_DEFINED_CONSTANT; trigger_error("Мояошибка", E_USER_ERROR);trigger_error("Моепредупреждение", E_USER_WARNING); ?>

Функции обработки ошибок

error_log
Посылка сообщения об ошибке.

Синтаксис :
int error_log(string message, int message_type [, string destination [, string extra_headers]])

Сообщение, посылаемое этой функцией, может быть направлено в журнал системных сообщений web-сервера, прот TCP или в файл.
В первом аргументе message указывается само содержание сообщения. Во втором аргументе message_type - куда оно должно быть направлено.
Назначение обозначается следующими значениями:

· 0 - Сообщение заносится в системный журнал событий (файл) согласно установке параметра конфигурации error_log.

· 1 - Сообщение отправляется по электронной почте, по адресу, указанному в аргументе destination. Это единственный тип сообщения, использующий четвертый параметр extra_headers, в котором можно указать дополнительные заголовки (как в функции mail()).

· 2 - Сообщение посылается через подключение отладки. Это возможно только в случае, если параметр удаленной отладки был разрешен в файле конфигурации. Для этого также должен быть определен адрес хоста (имя или его IP адрес) и порт сокета, который будет принимать сообщения отладки. Это можно указать в аргументе destination или параметрах конфигурации.

· 3 - message добавляется в конец файла destination.

if(!Ora_London($username, $password)) {error_log("Сервер Oracle недоступен!", 0);}; if(!($foo = allocate_new_foo()) {error_log("Нельзя выделить FOO!", 1, "operator@mydomain.ru");} // other ways of calling error_log():error_log("У нас ошибка!", 2, "127.0.0.1:7000");error_log("Унасошибка!", 2, "localhost");error_log("Унасошибка!", 3, "/var/tmp/my-errors.log");

error_reporting
Установка видов сообщаемых ошибок.

Синтаксис :
int error_reporting([int level])

Функция error_reporting() возвращает предыдущую установку типа сообщаемых ошибок. Если указан аргумент, то заново переопределяет ее. В аргументе можно указывать константу, число или битовую маску. Старайтесь использовать константы вместо численных значений, чтобы сохранить совместимость с будущими версиями PHP.

error_reporting(2039); // в PHP эквивалент E_ALL ^ E_NOTICEerror_reporting(E_ALL ^ E_NOTICE); // установкапоумолчаниюerror_reporting(0); // отключить сообщения об ошибках// общиеошибкивыполненияerror_reporting(E_ERROR | E_WARNING | E_PARSE);// такжесообщатьонеизвестныхпеременныхerror_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);error_reporting(E_ALL); // сообщатьвсеошибки

restore_error_handler
Восстановление предыдущего обработчика ошибок.

Синтаксис :
void restore_error_handler()

Эта функция устанавливает в качестве функции обработчика ошибок ту, которая была таковой до последнего вызова функции set_error_handler(). Предыдущим обработчиком может быть ранее установленный пользовательский обработчик или встроенный обработчик PHP.