stream_get_meta_data
stream_get_meta_data
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
stream_get_meta_data - 从流/文件指针中检索头/元数据
描述
array stream_get_meta_data ( resource $stream )
返回有关现有的信息stream
。
参数
stream
该流可以是由fopen(),fsockopen()和pfsockopen()创建的任何流。
返回值
结果数组包含以下项目:
timed_out
(bool) -TRUE
如果数据流在等待最后一次调用fread()或fgets()的数据时超时。
阻塞
(布尔) -TRUE
如果流处于阻塞
IO模式。请参阅stream_set_blocking()。
eof
(bool) -TRUE
如果流已经达到文件结束。请注意,对于套接字流,TRUE
即使unread_bytes
不为零,该成员也可以。要确定是否有更多数据要读取,请使用feof
()而不是阅读此项目。
unread_bytes
(int) - 当前包含在PHP自己的内部缓冲区中的字节数。
注意
:您不应该在脚本中使用此值。
stream_type
(string) - 描述流的底层实现的标签。
wrapper_type
(字符串) - 描述在流上分层的协议包装器实现的标签。有关包装器的更多信息,请参阅支持的协议和包装器。
wrapper_data
(混合) - 附加到此流的封装器特定数据。有关包装器及其包装器数据的更多信息,请参阅支持的协议和包装器。
模式
(字符串) - 此流所需的访问类型(请参阅fopen()参考的表1)
可搜索
(bool) - 是否可以查找当前流。
uri
(字符串) - 与此流关联的URI/文件名。
示例
示例#1 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
(
[wrapper_data] => Array
(
[0] => HTTP/1.1 200 OK
[1] => Server: Apache/2.2.3 (Red Hat)
[2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
[3] => ETag: "b300b4-1b6-4059a80bfd280"
[4] => Accept-Ranges: bytes
[5] => Content-Type: text/html; charset=UTF-8
[6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
[6] => Connection: close
[7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
[8] => Age: 1164
[9] => Content-Length: 438
)
[wrapper_type] => http
[stream_type] => tcp_socket/ssl
[mode] => r
[unread_bytes] => 438
[seekable] =>
[uri] => http://www.example.com/
[timed_out] =>
[blocked] => 1
[eof] =>
)
注意
注意
:此函数不适用于由套接字扩展创建的套接字。
另请参阅
- get_headers() - 获取服务器为响应HTTP请求而发送的所有标头
- $http_response_header
← stream_get_line
stream_get_transports →