Stream 流处理¶
| 属性 | 值 |
|---|---|
| 命名空间 | fize\io |
| 类名 | Stream |
| 方法: |
|---|
| 方法名 | 说明 |
|---|---|
| __construct() | 初始化 |
| __destruct() | 析构 |
| get() | 取回上下文资源流 |
| bucketAppend() | 将桶附加到队列 |
| bucketMakeWriteable() | 从队列中返回一个bucket对象,用于操作 |
| bucketNew() | 创建一个用于当前流的新桶 |
| bucketPrepend() | 为队列准备桶 |
| contextCreate() | 创建资源流上下文 |
| contextGetDefault() | 检索默认流上下文 |
| contextGetOptions() | 获取资源流/数据包/上下文的参数 |
| contextGetParams() | 从上下文检索参数 |
| contextSetDefault() | 设置默认流上下文 |
| contextSetOption() | 对资源流、数据包或者上下文设置参数 |
| contextSetParams() | 设置流/包装器/上下文的参数 |
| copyToStream() | 将数据复制到另一个流 |
| filterAppend() | 将后置过滤器附加到流 |
| filterPrepend() | 将前置过滤器附加到流 |
| filterRegister() | 注册用户定义的流过滤器 |
| filterRemove() | 从资源流里移除某个过滤器 |
| getContents() | 读取资源流到一个字符串 |
| getFilters() | 获取已注册的数据流过滤器列表 |
| getLine() | 从资源流里读取一行直到给定的定界符 |
| getMetaData() | 从封装协议文件指针中取得报头/元数据 |
| getTransports() | 获取已注册的套接字传输协议列表 |
| getWrappers() | 获取已注册的流类型 |
| isLocal() | 检查流是否是本地流 |
| isatty() | 确定流是否引用有效的终端类型设备 |
| resolveIncludePath() | 根据包含路径解析文件名 |
| select() | 对流的给定数组运行select()系统调用,超时由tv_sec和tv_usec指定 |
| setBlocking() | 为资源流设置阻塞或者非阻塞模式 |
| setChunkSize() | 设置资源流区块大小 |
| setReadBuffer() | 设置流上的读取文件缓冲 |
| setTimeout() | 设置流超时时间 |
| setWriteBuffer() | 设置流上的写文件缓冲 |
| socketAccept() | 接受由 Stream::socketServer() 创建的套接字连接 |
| socketClient() | 打开Internet或Unix域套接字连接 |
| socketEnableCrypto() | 在已连接的套接字上打开/关闭加密 |
| socketGetName() | 获取本地或者远程的套接字名称 |
| socketPair() | 创建一对完全一样的网络套接字连接流 |
| socketRecvfrom() | 从套接字接收数据,无论是否连接 |
| socketSendto() | 向套接字发送消息,不管它是否连接 |
| socketServer() | 创建Internet或Unix域服务器套接字 |
| socketShutdown() | 关闭全双工连接 |
| supportsLock() | 表示流是否支持锁定 |
| wrapperRegister() | 注册一个用 PHP 类实现的 URL 封装协议 |
| wrapperRestore() | 恢复以前未注册的内置包装器 |
| wrapperUnregister() | 卸载封装协议 |
方法¶
__construct()¶
初始化
public function __construct (
resource $stream_or_context
)
| 参数: |
|
|---|
bucketAppend()¶
将桶附加到队列
public static function bucketAppend (
resource $brigade,
object $bucket
)
| 参数: |
|
|---|
bucketMakeWriteable()¶
从队列中返回一个bucket对象,用于操作
public static function bucketMakeWriteable (
resource $brigade
) : object
| 参数: |
|
|---|
bucketNew()¶
创建一个用于当前流的新桶
public static function bucketNew (
resource $stream,
string $buffer
) : object
| 参数: |
|
|---|
bucketPrepend()¶
为队列准备桶
public static function bucketPrepend (
resource $brigade,
resource $bucket
)
| 参数: |
|
|---|
contextCreate()¶
创建资源流上下文
public static function contextCreate (
array $options = null,
array $params = null
) : resource
| 参数: |
|
|---|
参数 `$options` :
格式如下:$arr['wrapper']['option'] = $value 。
参数 `$params` :
必须是 $arr['parameter'] = $value 格式的关联数组。
请参考 context parameters 里的标准资源流参数列表。
contextGetDefault()¶
检索默认流上下文
public static function contextGetDefault (
array $options = []
) : resource
| 参数: |
|
|---|
contextGetOptions()¶
获取资源流/数据包/上下文的参数
public function contextGetOptions () : array
| 返回值: | 返回一个包含有原参数的关联数组。 |
|---|
contextSetDefault()¶
设置默认流上下文
public static function contextSetDefault (
array $options
) : resource
| 参数: |
|
||||
|---|---|---|---|---|---|
| 返回值: | 返回默认流 |
contextSetOption()¶
对资源流、数据包或者上下文设置参数
public function contextSetOption (
array $options
) : bool
| 参数: |
|
|---|
contextSetParams()¶
设置流/包装器/上下文的参数
public function contextSetParams (
array $params
) : bool
| 参数: |
|
|---|
copyToStream()¶
将数据复制到另一个流
public function copyToStream (
resource $dest,
int $maxlength = -1,
int $offset = 0
) : int
| 参数: |
|
||||||||
|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
filterAppend()¶
将后置过滤器附加到流
public function filterAppend (
string $filtername,
int $read_write = null,
mixed $params = null
) : resource
| 参数: |
|
|---|
参数 `$read_write` :
可选值:STREAM_FILTER_READ、STREAM_FILTER_WRITE和/或STREAM_FILTER_ALL
filterPrepend()¶
将前置过滤器附加到流
public function filterPrepend (
string $filtername,
int $read_write = null,
mixed $params = null
) : resource
| 参数: |
|
|---|
参数 `$read_write` :
可选值:STREAM_FILTER_READ、STREAM_FILTER_WRITE和/或STREAM_FILTER_ALL
filterRegister()¶
注册用户定义的流过滤器
public static function filterRegister (
string $filtername,
string $classname
) : bool
| 参数: |
|
|---|
filterRemove()¶
从资源流里移除某个过滤器
public static function filterRemove (
resource $stream_filter
) : bool
| 参数: |
|
|---|
getContents()¶
读取资源流到一个字符串
public function getContents (
int $maxlength = -1,
int $offset = -1
) : string
| 参数: |
|
||||||
|---|---|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
参数 `$maxlength` :
默认是-1(读取全部的缓冲数据)。
参数 `$offset` :
如果这个数字是负数,就不进行查找,直接从当前位置开始读取。
getLine()¶
从资源流里读取一行直到给定的定界符
public function getLine (
int $length,
string $ending = null
) : string
| 参数: |
|
||||||
|---|---|---|---|---|---|---|---|
| 返回值: | 如果发生错误,则返回 FALSE. |
isLocal()¶
检查流是否是本地流
public function isLocal (
mixed $stream_or_url = null
) : bool
| 参数: |
|
|---|
resolveIncludePath()¶
根据包含路径解析文件名
public static function resolveIncludePath (
string $filename
) : string
| 参数: |
|
||||
|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
select()¶
对流的给定数组运行select()系统调用,超时由tv_sec和tv_usec指定
public static function select (
array &$read,
array &$write,
array &$except,
int $tv_sec,
int $tv_usec = null
) : int
| 参数: |
|
|---|
setChunkSize()¶
设置资源流区块大小
public function setChunkSize (
int $chunk_size
) : int
| 参数: |
|
||||
|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
setReadBuffer()¶
设置流上的读取文件缓冲
public function setReadBuffer (
int $buffer
) : int
| 参数: |
|
|---|
setTimeout()¶
设置流超时时间
public function setTimeout (
int $seconds,
int $microseconds = null
) : bool
| 参数: |
|
|---|
setWriteBuffer()¶
设置流上的写文件缓冲
public function setWriteBuffer (
int $buffer
) : int
| 参数: |
|
|---|
socketAccept()¶
接受由 Stream::socketServer() 创建的套接字连接
public function socketAccept (
float $timeout = null,
string &$peername = null
) : resource
| 参数: |
|
||||||
|---|---|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
参数 `$timeout` :
输入的时间需以秒为单位。
参数 `$peername` :
如果包含该参数并且是可以从选中的传输数据中获取到,则将被设置给连接中的客户端主机的名称(地址)
socketClient()¶
打开Internet或Unix域套接字连接
public static function socketClient (
string $remote_socket,
int &$errno = null,
string &$errstr = null,
float $timeout = null,
int $flags = 4,
resource $context = null
) : resource
| 参数: |
|
||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
参数 `$flags` :
选择仅限于STREAM_CLIENT_CONNECT(默认)、STREAM_CLIENT_ASYNC_CONNECT和STREAM_CLIENT_PERSISTENT。
socketEnableCrypto()¶
在已连接的套接字上打开/关闭加密
public function socketEnableCrypto (
bool $enable,
int $crypto_type = null,
resource $session_stream = null
) : mixed
| 参数: |
|
||||||||
|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 成功true,失败false。没有足够数据时返回0 |
socketGetName()¶
获取本地或者远程的套接字名称
public function socketGetName (
int $want_peer
) : string
| 参数: |
|
|---|
参数 `$want_peer` :
如果设置为 TRUE ,那么将返回 remote 套接字连接名称;如果设置为 FALSE 则返回 local 套接字连接名称。
socketPair()¶
创建一对完全一样的网络套接字连接流
public static function socketPair (
int $domain,
int $type,
int $protocol
) : array
| 参数: |
|
||||||||
|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 数组包括了两个socket资源,失败返回false |
参数 `$domain` :
可选值:STREAM_PF_INET, STREAM_PF_INET6 or STREAM_PF_UNIX
参数 `$type` :
可选值:STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET or STREAM_SOCK_STREAM
参数 `$protocol` :
可选值:STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP or STREAM_IPPROTO_UDP
socketRecvfrom()¶
从套接字接收数据,无论是否连接
public function socketRecvfrom (
int $length,
int $flags = 0,
string &$address = null
) : string
| 参数: |
|
||||||||
|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 以字符串的形式返回读取的数据 |
socketSendto()¶
向套接字发送消息,不管它是否连接
public function socketSendto (
string $data,
int $flags = 0,
string $address = null
) : int
| 参数: |
|
||||||||
|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 以整数形式返回结果代码。 |
socketServer()¶
创建Internet或Unix域服务器套接字
public static function socketServer (
string $local_socket,
int &$errno = null,
string &$errstr = null,
int $flags = 12,
resource $context = null
) : resource
| 参数: |
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 返回值: | 失败时返回false |
参数 `$local_socket` :
创建的套接字类型由使用标准URL格式transport: transport://target指定的传输类型决定。
socketShutdown()¶
关闭全双工连接
public function socketShutdown (
int $how
) : bool
| 参数: |
|
|---|
参数 `$stream` :
(例如,用stream_socket_client()打开)
参数 `$how` :
以下常量之一:STREAM_SHUT_RD(禁用进一步的接收)、STREAM_SHUT_WR(禁用进一步的传输)或STREAM_SHUT_RDWR(禁用进一步的接收和传输)。
wrapperRegister()¶
注册一个用 PHP 类实现的 URL 封装协议
public static function wrapperRegister (
string $protocol,
string $classname,
int $flags = 0
) : bool
| 参数: |
|
|---|
参数 `$flags` :
如果协议是URL协议,则应设置为STREAM_IS_URL。默认值是0,即本地流。
wrapperRestore()¶
恢复以前未注册的内置包装器
public static function wrapperRestore (
string $protocol
) : bool
| 参数: |
|
|---|
wrapperUnregister()¶
卸载封装协议
public static function wrapperUnregister (
string $protocol
) : bool
| 参数: |
|
|---|