1.stream_get_contents — 读取资源流到一个字符串
stream_get_contents ( resource $handle
[, int $maxlength
= -1 [, int $offset
= -1 ]] ) : string
与 file_get_contents() 一样,但是 stream_get_contents() 是对一个已经打开的资源流进行操作,并将其内容写入一个字符串返回。 返回的内容取决于 maxlength
字节长度和 offset
指定的起始位置。
参数
handle
(resource):一个资源流(例如 fopen() 操作之后返回的结果)
maxlength
(integer):需要读取的最大的字节数。默认是-1(读取全部的缓冲数据)。
offset
(integer):在读取数据之前先查找指定的偏移量。如果这个数字是负数,就不进行查找,直接从当前位置开始读取。
返回值
返回一个字符串 或者在失败时返回 FALSE
.
2.stream_socket_client — 打开Internet或Unix域套接字连接
stream_socket_client ( string $remote_socket
[, int &$errno
[, string &$errstr
[, float $timeout
= ini_get("default_socket_timeout") [, int $flags
= STREAM_CLIENT_CONNECT [, resource $context
]]]]] ) : resource
连接到所指定目标的流或数据报连接remote_socket
。创建的套接字的类型取决于使用标准URL格式指定的传输方式:transport:// target。对于TCP和UDP等Internet域套接字(AF_INET),参数的目标部分remote_socket
应由主机名或IP地址,后跟冒号和端口号组成。对于Unix域套接字,该target
部分应指向文件系统上的套接字文件。
Note:
默认情况下,该流将以阻塞模式打开。您可以使用stream_set_blocking()将其切换为非阻塞模式。
参数
remote_socket:
要连接的套接字地址。
errno:
如果连接失败,将被设置为系统级错误号。
errstr:
如果连接失败,将被设置为系统级错误消息。
timeout:
直到connect()系统调用应超时的秒数。
返回值
失败时,errno
and errstr
参数将填充在系统级connect()调用中发生的实际系统级错误。如果返回的errno
值为0且函数返回FALSE
,则表明在connect()调用之前发生了错误。这很可能是由于初始化套接字时出现问题。请注意,errno
和errstr
参数将始终通过引用传递。
3.stream_set_timeout — 设置流的超时时间
bool stream_set_timeout ( resource $stream , int $seconds [, int $microseconds = 0 ] )
设置的超时值stream
,在之和来表示seconds
和microseconds
。
当流超时时,stream_get_meta_data()返回的数组的'timed_out'键设置为TRUE
,尽管不会产生错误/警告。
参数
stream:
目标流。
seconds:
要设置的超时秒数部分。
microseconds:
要设置的超时的微秒部分。
返回值
TRUE
成功或FALSE
失败时返回。
4.stream_get_meta_data — 从流/文件指针中检索标头/元数据
array stream_get_meta_data ( resource $stream )
返回有关现有的信息stream
。
返回值
结果数组包含以下各项:
-
blocked (bool) -
TRUE
如果流处于阻塞IO模式。参见stream_set_blocking()。 -
eof(bool)-
TRUE
如果流已到达文件末尾。请注意,对于套接字流,TRUE
即使unread_bytes不为零,该成员也可以是。要确定是否还有更多数据要读取,请使用feof()而不是读取此项。 -
unread_bytes(int)-PHP自身内部缓冲区中当前包含的字节数。