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

socket_get_status

(PHP 4)

socket_get_status - возвращает информацию о существующем потоке сокета.

Описание

array socket_get_status (resource socketstream)

Возвращает информацию о существующем потоке сокета. Эта функция работает только на сокетах, созданных функцией fsockopen(), pfsockopen(), или на сетевых сокетах, возвращённых функцией fopen() при открытии URLs. Она НЕ работает с сокетами из расширения Socket. В настоящее время возвращает 4 элемента в результирующем массиве:

  • timed_out (bool) - этот сокет находится в режиме таймаута в ожидании данных

  • blocked (bool) - этот сокет был блокирован

  • eof (bool) - указывает на событие EOF

  • unread_bytes (int) - количество байтов, оставшихся в буфере сокета

См. также расширение Socket.


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

Утверждения/Assertions

Утверждение назад начинается с (?<= для положительного и с (?<! - для отрицательного утверждения. Например,

(?<!foo)bar

не найдёт вхождения "bar", перед которым нет "foo". Содержимое утверждения назад ограничено так, что все строки, с которыми оно совпадает обязаны иметь фиксированные размеры. Однако, если есть несколько альтернатив, они не все должны иметь один и тот же фиксированный размер. Таким образом,

(?<=bullock|donkey)

допустимо, а

(?<!dogs?|cats?)

вызовет ошибку времени компиляции. Ответвления, которые совпадают со строками разной длины, допускаются только на верхнем уровне lookbehind-утверждения. Это расширение относительно 5.005, который требует, чтобы все ответвления совпадали с одной длиной строки. Такое утверждение как

(?<=ab(c|de))

недопустимо, поскольку имеет единственное ответвление верхнего уровня, которое может совпадать с двумя различными размерами, но это допускается, если переписать его с двумя ответвлениями верхнего уровня:

(?<=abc|abde)

Утверждения назад/lookbehind реализованы так, что, для каждой альтернативы, временно сдвигается текущая позиция на фиксированную ширину, а затем делается попытка найти совпадение.
Если перед текущей позицией недостаточно символов, совпадение считается неудачным. Утверждения назад в сочетании с once-only субпатэрнами могут особенно пригодиться для поиска совпадений в конце строк; пример дан в конце этого раздела для once-only субпатэрнов.