PHP stream_get_meta_data() 函数返回有关现有流的信息。
语法
stream_get_meta_data(stream)
参数
stream | 必填。 指定流。它可以是由 fopen() 创建的任何流,fsockopen() 和 pfsockopen()。 |
返回值
返回包含以下项目的结果数组:
- timed_out (bool) - 如果流在等待数据时超时,则为 true最后一次调用 fread() 和 fgets().
- blocked (bool) - 如果流处于阻塞 IO 模式,则为 true。有关更多详细信息,请参阅 stream_set_blocking() 函数。
- eof (bool) - 如果流为 true,则为 true已到达文件结尾。
- unread_bytes (int) - PHP 自己的内部缓冲区中当前包含的字节数。
- stream_type (string) - 描述底层的标签流的实现。
- wrapper_type(字符串)- 描述流上分层的协议包装器实现的标签。
- wrapper_data(混合)- 附加到此流的包装器特定数据。
- mode(字符串)- 此流所需的访问类型。
- seekable(布尔)- 是否可以查找当前流。
- uri(字符串) ) - 与此流关联的 URI/文件名。
示例:
下面的示例显示了 stream_get_meta_data() 函数的用法。
<?php
$url = 'http://www.example.com/';
if (!$fp = fopen($url, 'r')) {
trigger_error("Unable to open URL ($url)", E_USER_ERROR);
}
$meta = stream_get_meta_data($fp);
print_r($meta);
fclose($fp);
?>
上述代码的输出将类似于:
Array
(
[timed_out] =>
[blocked] => 1
[eof] =>
[wrapper_data] => Array
(
[0] => HTTP/1.1 200 OK
[1] => Age: 482058
[2] => Cache-Control: max-age=604800
[3] => Content-Type: text/html; charset=UTF-8
[4] => Date: Sun, 24 Oct 2021 04:57:08 GMT
[5] => Etag: "3147526947+ident"
[6] => Expires: Sun, 31 Oct 2021 04:57:08 GMT
[7] => Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
[8] => Server: ECS (dna/63B4)
[9] => Vary: Accept-Encoding
[10] => X-Cache: HIT
[11] => Content-Length: 1256
[12] => Connection: close
)
[wrapper_type] => http
[stream_type] => tcp_socket/ssl
[mode] => r
[unread_bytes] => 1256
[seekable] =>
[uri] => http://www.example.com/
)