array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.stream-set-timeout.php', 1 => 'stream_set_timeout', ), 'up' => array ( 0 => 'ref.stream.php', 1 => 'Функции для работы с потоками', ), 'prev' => array ( 0 => 'function.stream-set-read-buffer.php', 1 => 'stream_set_read_buffer', ), 'next' => array ( 0 => 'function.stream-set-write-buffer.php', 1 => 'stream_set_write_buffer', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/stream/functions/stream-set-timeout.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
stream_set_timeout — Установить значение времени ожидания для потока
Устанавливает значение времени ожидания в потоке stream
,
равное сумме параметров seconds
и
microseconds
.
Когда время работы потока истекает, ключ 'timed_out' массива, возвращаемого
функцией stream_get_meta_data(), устанавливается в значение true
, хотя
ошибка или предупреждение не генерируется.
stream
Целевой поток.
seconds
Секунды в устанавливаемом времени ожидания.
microseconds
Микросекунды в устанавливаемом времени ожидания.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #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(), но это использование устарело.