manual-php
Version:
449 lines (284 loc) • 10.6 kB
Markdown
# Streams
* [stream_context_create - 创建资源流上下文](#streamcontextcreate)
* [stream_context_get_default - 检索默认资源流上下文](#streamcontextgetdefault)
* [stream_context_get_options - 获取资源流的参数](#streamcontextgetoptions)
* [stream_context_get_params - 从资源上下文中检索参数](#streamcontextgetparams)
* [stream_context_set_default - 设置默认资源流上下文](#streamcontextsetdefault)
* [stream_context_set_option - 对资源流设置参数](#streamcontextsetoption)
* [stream_context_set_params - 设置资源流的参数](#streamcontextsetparams)
* [stream_copy_to_stream - 将数据从一个资源流复制到另一个](#streamcopytostream)
* [stream_filter_append - 将过滤器附加到资源流](#streamfilterappend)
* [stream_filter_prepend - 将过滤器附加到资源流](#streamfilterprepend)
* [stream_filter_register - 注册用户自定义的资源流过滤器](#streamfilterregister)
* [stream_filter_remove - 从资源流里移除某个过滤器](#streamfilterremove)
* [stream_get_contents - 读取资源流到一个字符串](#streamgetcontents)
* [stream_get_filters - 获取已注册的数据流过滤器列表](#streamgetfilters)
* [stream_get_line - 从资源流里读取一行直到给定的定界符](#streamgetline)
* [stream_get_meta_data - 从封装协议文件指针中取得元数据](#streamgetmetadata)
* [stream_get_transports - 获取已注册的套接字传输协议列表](#streamgettransports)
* [stream_get_wrappers - 获取已注册的流类型](#streamgetwrappers)
* [stream_is_local - 检查流是否是本地流](#streamislocal)
* [stream_isatty - 检查流是否为 TTY](#streamisatty)
* [stream_register_wrapper - 注册一个用 PHP 类实现的 URL 封装协议](#streamregisterwrapper)
* [stream_resolve_include_path - 根据包含路径解析文件名](#streamresolveincludepath)
* [stream_set_blocking - 为资源流设置阻塞或者阻塞模式](#streamsetblocking)
* [stream_set_chunk_size - 设置资源流区块大小](#streamsetchunksize)
* [stream_set_read_buffer - 在给定的资源流上设置读取文件缓冲](#streamsetreadbuffer)
* [stream_set_timeout - 在资源流上设置超时时间](#streamsettimeout)
* [stream_set_write_buffer - 在给定的资源流上设置写文件缓冲](#streamsetwritebuffer)
* [stream_socket_accept - 接受套接字连接](#streamsocketaccept)
* [stream_socket_client - 打开 Internet 或 Unix 域套接字连接](#streamsocketclient)
* [stream_socket_enable_crypto - 在已连接的套接字上打开 / 关闭加密](#streamsocketenablecrypto)
* [stream_socket_get_name - 获取本地或者远程的套接字名称](#streamsocketgetname)
* [stream_socket_pair - 创建一对完全一样的网络套接字连接流](#streamsocketpair)
* [stream_socket_recvfrom - 从套接字接收数据,无论是否已连接](#streamsocketrecvfrom)
* [stream_socket_sendto - 将消息发送到套接字,无论是否已连接](#streamsocketsendto)
* [stream_socket_server - 创建一个 Internet 或 Unix 域服务器套接字](#streamsocketserver)
* [stream_socket_shutdown - 关闭全双工连接](#streamsocketshutdown)
* [stream_supports_lock - 告诉资源流是否支持锁定](#streamsupportslock)
* [stream_wrapper_register - 注册一个用 PHP 类实现的 URL 封装协议](#streamwrapperregister)
* [stream_wrapper_restore - 恢复之前的封装协议](#streamwrapperrestore)
* [stream_wrapper_unregister - 取消注册 URL 封装协议](#streamwrapperunregister)
## stream_context_create
```php
var_dump(stream_context_create()); // resource(4) of type (stream-context)
var_dump(stream_context_create(['http' => ['method' => 'GET', 'header' => 'Accept: text/html']])); // resource(5) of type (stream-context)
```
## stream_context_get_default
```php
var_dump(stream_context_get_default(['http' => ['method' => 'GET', 'header' => 'Accept: text/html']])); // resource(4) of type (stream-context)
```
## stream_context_get_options
```php
var_dump(stream_context_get_options(stream_context_get_default(['http' => ['method' => 'GET', 'header' => 'Accept: text/html']]))); // array(1) { ["http"]=> array(2) { ["method"]=> string(3) "GET" ["header"]=> string(17) "Accept: text/html" } }
```
## stream_context_get_params
```php
var_dump(stream_context_get_params(stream_context_create(['http' => ['method' => 'GET', 'header' => 'Accept: text/html']]))); // array(1) { ["options"]=> array(1) { ["http"]=> array(2) { ["method"]=> string(3) "GET" ["header"]=> string(17) "Accept: text/html" } } }
```
## stream_context_set_default
```php
var_dump(stream_context_set_default(['http' => ['method' => 'GET', 'header' => 'Accept: text/html']])); // resource(4) of type (stream-context)
```
## stream_context_set_option
```php
var_dump(stream_context_set_option(stream_context_create(), ['http' => ['method' => 'GET', 'header' => 'Accept: text/html']])); // bool(true)
```
## stream_context_set_params
```php
var_dump(stream_context_set_params(stream_context_create(), ['http' => ['method' => 'GET', 'header' => 'Accept: text/html']])); // bool(true)
```
## stream_copy_to_stream
```php
var_dump(stream_copy_to_stream(fopen('http://www.example.com', 'r'), fopen(__DIR__ . '/example.txt', 'w+')));
```
## stream_filter_append
```php
$handle = fopen(__DIR__ . '/example.txt', 'w+');
var_dump(stream_filter_append($handle, 'string.rot13', STREAM_FILTER_WRITE)); // resource(6) of type (stream filter)
fwrite($handle, 'foo');
rewind($handle);
var_dump(fgets($handle)); // string(3) "sbb"
```
## stream_filter_prepend
```php
$handle = fopen(__DIR__ . '/example.txt', 'w+');
var_dump(stream_filter_prepend($handle, 'string.rot13', STREAM_FILTER_WRITE)); // resource(6) of type (stream filter)
fwrite($handle, 'foo');
rewind($handle);
var_dump(fgets($handle)); // string(3) "sbb"
```
## stream_filter_register
```php
class Foo
{
//
}
var_dump(stream_filter_register('foo', 'Foo')); // bool(true)
```
## stream_filter_remove
```php
$handle = fopen(__DIR__ . '/example.txt', 'w+');
$filter = stream_filter_append($handle, 'string.rot13', STREAM_FILTER_WRITE);
fwrite($handle, 'foo');
stream_filter_remove($filter);
fwrite($handle, 'foo');
rewind($handle);
var_dump(fgets($handle)); // string(6) "sbbfoo"
```
## stream_get_contents
```php
var_dump(stream_get_contents(fopen('http://www.example.com', 'r')));
var_dump(stream_get_contents(fopen('http://www.example.com', 'r'), 10));
```
## stream_get_filters
```php
var_dump(stream_get_filters());
```
## stream_get_line
```php
var_dump(stream_get_line(fopen('http://www.example.com', 'r'), 10));
var_dump(stream_get_line(fopen('http://www.example.com', 'r'), 10, '!'));
```
## stream_get_meta_data
```php
var_dump(stream_get_meta_data(fopen('http://www.example.com', 'r')));
```
## stream_get_transports
```php
var_dump(stream_get_transports());
```
## stream_get_wrappers
```php
var_dump(stream_get_wrappers());
```
## stream_is_local
```php
var_dump(stream_is_local(__FILE__)); // bool(true)
var_dump(stream_is_local('http://www.example.com')); // bool(false)
var_dump(stream_is_local(fopen('http://www.example.com', 'r'))); // bool(false)
```
## stream_isatty
```php
var_dump(stream_isatty(fopen(__FILE__, 'r')));
```
## stream_register_wrapper
```php
class Foo
{
//
}
var_dump(stream_register_wrapper('foo', 'Foo')); // bool(true)
```
## stream_resolve_include_path
```php
var_dump(stream_resolve_include_path('index.php'));
```
## stream_set_blocking
```php
$handle = fopen('http://www.example.com', 'r');
var_dump(stream_set_blocking($handle, 0)); // bool(true)
var_dump(stream_set_blocking($handle, 1)); // bool(true)
```
## stream_set_chunk_size
```php
var_dump(stream_set_chunk_size(fopen('http://www.example.com', 'r'), 1024));
```
## stream_set_read_buffer
```php
var_dump(stream_set_read_buffer(fopen('http://www.example.com', 'r'), 1024)); // int(0)
```
## stream_set_timeout
```php
var_dump(stream_set_timeout(fopen('http://www.example.com', 'r'), 30)); // bool(true)
```
## stream_set_write_buffer
```php
var_dump(stream_set_write_buffer(fopen(__DIR__ . '/example.txt', 'w+'), 1024));
```
## stream_socket_accept
```php
var_dump(stream_socket_accept(stream_socket_server('tcp://127.0.0.1:80', $errno, $errstr), 2));
```
## stream_socket_client
```php
var_dump(stream_socket_client('tcp://127.0.0.1:80')); // resource(5) of type (stream)
```
## stream_socket_enable_crypto
```php
var_dump(stream_socket_enable_crypto(stream_socket_client('tcp://127.0.0.1:80'), false));
```
## stream_socket_get_name
```php
var_dump(stream_socket_get_name(stream_socket_client('tcp://www.example.com:80'), true));
var_dump(stream_socket_get_name(stream_socket_client('tcp://www.example.com:80'), false));
```
## stream_socket_pair
```php
var_dump(stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP));
```
## stream_socket_recvfrom
```php
$server = stream_socket_server('tcp://127.0.0.1:80');
$socket = stream_socket_accept($server, 2);
var_dump(stream_socket_recvfrom($socket, 1024));
```
## stream_socket_sendto
```php
$socket = stream_socket_client('tcp://127.0.0.1:80');
var_dump(stream_socket_sendto($socket, 'foo', STREAM_OOB)); // int(3)
```
## stream_socket_server
```php
var_dump(stream_socket_server('tcp://127.0.0.1:80', $errno, $errstr)); // resource(5) of type (stream)
```
## stream_socket_shutdown
```php
var_dump(stream_socket_shutdown(stream_socket_client('tcp://127.0.0.1:80'), STREAM_SHUT_WR)); // bool(true)
```
## stream_supports_lock
```php
var_dump(stream_supports_lock(stream_socket_client('tcp://127.0.0.1:80')));
```
## stream_wrapper_register
```php
class Foo
{
//
}
var_dump(stream_wrapper_register('foo', 'Foo')); // bool(true)
```
## stream_wrapper_restore
```php
stream_wrapper_unregister('http');
var_dump(stream_wrapper_restore('http')); // bool(true)
```
## stream_wrapper_unregister
```php
class Foo
{
//
}
stream_wrapper_register('foo', 'Foo');
var_dump(stream_wrapper_unregister('foo')); // bool(true)
```