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

socket_set_timeout

(PHP 4)

socket_set_timeout - установить период таймаута для сокета.

Описание

bool socket_set_timeout (int socket descriptor, int seconds, int microseconds)

Устанавливает значение таймаута на socket descriptor, выраженное суммой seconds и microseconds.
Пример 1. socket_set_timeout()
<?php 
$fp = fsockopen("www.example.com", 80); if(!$fp) { echo "Unable to open\n"; } 
else { fputs($fp,"GET / HTTP/1.0\n\n"); $start = time(); socket_set_timeout($fp, 
2); $res = fread($fp, 2000); var_dump(socket_get_status($fp)); fclose($fp); print 
$res; } ?>

Эта функция вызывалась раньше set_socket_timeout(), но это теперь не рекомендуется.

См. также fsockopen() и fopen().


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

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

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

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

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

abcd$

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

^.*abcd$