关于PHP 流的一些整体情况,可以先看看 了解PHP中Stream(流)的概念与用法 这篇文章。
这个chapter会将上面文章提到的一些知识点细化,再补充一些没提到的知识点。
PHP 使用 :// 这样的格式来进行 stream 的操作。比如使用 file:// 协议来访问文件系统:
readfile('/path/to/somefile.txt')
readfile('file:///path/to/somefile.txt')
//两者是等价的
使用下面的方法即可打印出PHP内置的流:
$streamlist = stream_get_filters();
print_r($streamlist);
输出:
Array
(
[0] => convert.iconv.*
[1] => mcrypt.*
[2] => mdecrypt.*
[3] => string.rot13
[4] => string.toupper
[5] => string.tolower
[6] => string.strip_tags
[7] => convert.*
[8] => consumed
[9] => dechunk
[10] => zlib.*
[11] => bzip2.*
)
使用下面的方法即可查看PHP内置支持的协议和封装协议:
print_r(stream_get_wrappers());
输出:
Array
(
[0] => php
[1] => file
[2] => glob
[3] => data
[4] => http
[5] => ftp
[6] => zip
[7] => compress.zlib
[8] => compress.bzip2
[9] => phar
)
获取本地的socket支持情况则可以这样:
print_r(stream_get_transports());
输出:
Array
(
[0] => tcp
[1] => udp
)
// 或者是这样
Array
(
[0] => tcp
[1] => udp
[2] => unix
[3] => udg
[4] => ssl
[5] => sslv3
[6] => sslv2
[7] => tls
) //transports
等等。