stream_set_timeout

ストリームにタイムアウトを設定する

説明

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

stream にタイムアウトの値を設定します。 この値は、secondsmicroseconds の和で表されます。

ストリームがタイムアウトとなった場合は、 stream_get_meta_data が返す配列のキー 'timed_out' の値が 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 'Connection timed out!';
    } else {
        echo $res;
    }

}
?>

注意

注意:

この関数では、stream_socket_recvfrom のような 高度な操作はできません。そのかわりに、timeout パラメータを指定して stream_select を使用してください。

この関数は、以前は set_socket_timeout 、その後は socket_set_timeout と呼ばれたこともありましたが、 これらの利用は推奨されません。

参考

  • fsockopen
  • fopen