(PHP 4 >= 4.3.0, PHP 5, PHP 7)
stream_set_timeout — Устанавливает значение тайм-аута на потоке
$stream
, int $seconds
[, int $microseconds = 0
] )
Устанавливает значение тайм-аута на потоке stream,
равное сумме параметров seconds и
microseconds.
Когда время работы потока истекает, ключ 'timed_out' массива, возвращаемого
функцией stream_get_meta_data(), устанавливается в значение TRUE, хотя
ошибка или предупреждение не генерируется.
streamЦелевой поток.
secondsСекунды в устанавливаемом тайм-ауте.
microsecondsМикросекунды в устанавливаемом тайм-ауте.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
| Версия | Описание |
|---|---|
| 4.3.0 | Начиная с PHP 4.3 эта функция может (потенциально) работать на любом типе потока. В PHP 4.3 потоки, основанные на сокетах - это единственный тип потоков, поддерживаемый в ядре PHP, хотя потоки из других расширений могут поддерживать эту функцию. |
Пример #1 Пример использования stream_set_timeout()
<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
echo "Невозможно открыть сокет\n";
} else {
fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
stream_set_timeout($fp, 2);
$res = fread($fp, 2000);
$info = stream_get_meta_data($fp);
fclose($fp);
if ($info['timed_out']) {
echo 'Истекло время соединения!';
} else {
echo $res;
}
}
?>
Замечание:
Эта функция не работает с продвинутыми операциями, такими, как stream_socket_recvfrom(). Используйте вместо неё stream_select() с параметром тайм-аута
Эта функция раньше вызывалась через set_socket_timeout() и позднее через socket_set_timeout(), но это использование устарело.