Функции Язык программирования PHP

socket_strerror

(PHP 4 >= 4.1.0)

socket_strerror - возвращает строку - описание ошибки сокета.

Описание

string socket_strerror (int errno)

Предупреждение!

Эта функция - ЭКСПЕРИМЕНТАЛЬНАЯ. Поведение, имя и всё остальное, что задокументировано для данной функции может быть изменено в будущих релизах РНР без предупреждения. Вы можете использовать эту функцию только на свой страх и риск.

socket_strerror() принимает в качеств параметра errno код ошибки сокета, возвращённый функцией socket_last_error(), и возвращает соответствующий объясняющий текст. Вместо того чтобы заставлять системный include-файл найти, что означает '-111', вы просто передаёте это значение в socket_strerror(), и она объясняет, что произошло.

Пример 1. socket_strerror()
<?php if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, 
0))) { echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) 
. "\n"; } if (false == (@socket_bind($socket, '127.0.0.1', 80))) {  
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) 
. "\n"; } ?>

Ожидаемый вывод этого примера (предполагая, что скрипт не запущен с привилегиями root):
socket_bind() failed: reason: Permission denied

См. также socket_accept(), socket_bind(), socket_connect(), socket_listen() и socket_create().


Назад Оглавление Вперёд
socket_shutdown Вверх socket_write

Once-only/"Однократные" субпатэрны

Однократные субпатэрны не являются захватывающими субпатэрнами. Простые случаи, вроде вышеприведённого примера, можно представить как максималистское построение, которое поглощает всё, что может. Так, в то время как \d+ и \d+? подготовлены так, чтобы уточнять число цифр для совпадения с ними, чтобы совпала остальная часть патэрна, (?>\d+) может совпадать только с полной последовательностью цифр.

Эта конструкция, разумеется, может содержать произвольно усложнённые субпатэрны и может вкладываться.

Однократные субпатэрны можно использовать в сочетании с утверждениями назад для специфицирования эффективного совпадения в конце строки-субъекта. Рассмотрим такой простой патэрн:

abcd$

применённый к длинной строке, с которой он не совпадает. Поскольку совпадение выполняется слева направо, PCRE будет искать каждую "a" в субъекте, а затем посмотрит, что из последующего совпадает с остатком патэрна. Если патэрн специфицирован так:

^.*abcd$