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>