stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_timeoutУстанавливает значение времени ожидания для потока

Описание

function stream_set_timeout(resource $stream, int $seconds, int $microseconds = 0): bool

Функция устанавливает значение времени ожидания в потоке 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(), но это устарело.

Смотрите также

  • fsockopen() - Открывает соединение с сокетом интернет- или Unix-домена
  • fopen() - Открывает файл или URL-адрес