PHP Streams函数

PHP stream_set_timeout() 函数设置给定上的超时值,以微秒之和。

当流超时时,stream_get_meta_data() 设置为 true,但不会生成错误/警告。

语法

stream_set_timeout(stream, seconds, microseconds) 

参数

stream必填。 指定目标流。
seconds必填。 指定要设置的超时秒数部分。
microseconds可选。 指定要设置的超时的微秒部分。默认值为 0。

返回值

成功时返回 true,失败时返回 false。

示例:

下面的示例显示了stream_set_timeout()函数的用法。

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
  echo "Unable to open\n";
} else {
  fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
  stream_set_timeout($fp, 2);
  $res = fread($fp, 500);

  $info = stream_get_meta_data($fp);
  fclose($fp);

  if ($info['timed_out']) {
    echo 'Connection timed out!';
  } else {
    echo $res;
  }
}
?> 

上述代码的输出将类似于:

HTTP/1.0 404 Not Found
Content-Type: text/html
Date: Sun, 24 Oct 2021 05:01:00 GMT
Server: ECS (dna/63B4)
Content-Length: 345
Connection: close

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 过渡//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>404 - Not Found</title>
    </head>
    <body>
        <h1>404 - Not Found</h1>
    </body>
</html>