stream_get_meta_data() - php 流数据函数stream
stream_get_meta_data()
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
从封装协议文件指针中取得报头/元数据
说明
stream_get_meta_data(int $fp): array返回现有$stream的信息。可以是任何通过fopen(),fsockopen()和pfsockopen()建立的流。返回的数组包含以下项目:
$timed_out(bool)-如果在上次调用fread()或者fgets()中等待数据时流超时了则为
TRUE
。$blocked(bool)-如果流处于阻塞 IO 模式时为
TRUE
。参见stream_set_blocking()。$eof(bool)-如果流到达文件末尾时为
TRUE
。注意对于 socket 流甚至当$unread_bytes为非零值时也可以为TRUE
。要测定是否有更多数据可读,用feof()替代读取本项目的值。$unread_bytes(int)-当前在 PHP 自己的内部缓冲区中的字节数。
Note:不要在脚本中使用此值。
以下项目是 PHP 4.3 新加的:
$stream_type(string)-一个描述流底层实现的标注。
$wrapper_type(string)-一个描述流的分层协议封装实现的标注。更多关于封装协议的信息见支持的协议和封装协议。
$wrapper_data(mixed)-当前流附加的封装协议数据。更多封装协议及其数据的信息见支持的协议和封装协议。
$filters(array)-包含有被叠加在当前流的任何过滤器名的数组。过滤器的文档见附录中的可用过滤器列表。
Note:
本函数是 PHP 4.3 引进的,在此版本之前,可以用socket_get_status()来取得前四个项目并且仅能用于基于 socket 的流。
在 PHP 4.3 及以后版本中,socket_get_status()是本函数的别名。
Note:本函数不能作用于通过Socket 扩展库创建的流。
以下项目为 PHP 5.0 新加:
$mode(string)-对当前流所要求的访问类型(见fopen()中的表格 1)。
$seekable(bool)-是否可以在当前流中定位。
$uri(string)-与当前流关联的 URI 或文件名。
In PHP 5.4.24 and 5.4.25, this command does not correctly return the stream blocking status. It always returns ['blocked'] == 1 regardless of the actual blocking mode. A call to stream_set_blocking($stream, 0) will succeed (return TRUE) and subsequent calls to stream_get_contents($stream) will NOT block, even though a call to stream_get_meta_data($stream) will return 'blocked' == 1. Hopefully this will save some people a bunch of debugging time. See bug report #47918 for more information (http://bugs.php.net/bug.php?id=47918). Proof:
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!