PHP中的流是什么呢

时间:2025-10-28 03:31:43 php语言

PHP中的流是什么呢

  流(streams)是PHP4.3版本引入的一个特性,主要是为了统一文件、sockets以及其他类似资源的工作方法。PHP4.3距今已经有很长时间了,但是很多程序员似乎都不能正确使用PHP中的流,当然这也包括我。以前也在一些程序中遇到过流的使用,如php:/pic/p>

  概述

  流是由PHP提供的资源,可以供我们透明的使用,而且流是一个非常强大的工具。适当的在程序中使用流,可以将我们的程序带到一个新的高度。

  PHP手册中对流的描述如下:

  复制代码 代码如下:

  Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

  每一种流都实现了一个包装器(wrapper),包装器包含一些额外的代码用来处理特殊的协议和编码。PHP提供了一些内置的包装器,我们也可以很轻松的创建和注册自定义的包装器。我们甚至可以使用上下文(contexts)和过滤器来改变和增强包装器。

  流基础知识

  PHP中流的形式如::/pic/p>

  默认的包装器是file:/pic/path/to/somefile.txt')和readfile('file:/pic/path/to/somefile.txt'),使用这两种方式读取文件,可以得到相同的结果。

  正如前面所说,PHP提供了一些内置的包装器、协议和过滤器。查看我们的机器上安装了哪些包装器,可以使用如下几个函数:

  复制代码 代码如下:

  var_dump(stream_get_transports());

  var_dump(stream_get_wrappers());

  var_dump(stream_get_filters());

  ?>

  我本地的环境输出内容如下:

  复制代码 代码如下:

  array (size=8)

  0 => string 'tcp' (length=3)

  1 => string 'udp' (length=3)

  2 => string 'unix' (length=4)

  3 => string 'udg' (length=3)

  4 => string 'ssl' (length=3)

  5 => string 'sslv3' (length=5)

  6 => string 'sslv2' (length=5)

  7 => string 'tls' (length=3)

  array (size=12)

  0 => string 'https' (length=5)

  1 => string 'ftps' (length=4)

  2 => string 'compress.zlib' (length=13)

  3 => string 'compress.bzip2' (length=14)

  4 => string 'php' (length=3)

  5 => string 'file' (length=4)

  6 => string 'glob' (length=4)

  7 => string 'data' (length=4)

  8 => string 'http' (length=4)

  9 => string 'ftp' (length=3)

  10 => string 'phar' (length=4)

  11 => string 'zip' (length=3)

  array (size=12)

  0 => string 'zlib.*' (length=6)

  1 => string 'bzip2.*' (length=7)

  2 => string 'convert.iconv.*' (length=15)

  3 => string 'string.rot13' (length=12)

  4 => string 'string.toupper' (length=14)

  5 => string 'string.tolower' (length=14)

  6 => string 'string.strip_tags' (length=17)

  7 => string 'convert.*' (length=9)

  8 => string 'consumed' (length=8)

  9 => string 'dechunk' (length=7)

  10 => string 'mcrypt.*' (length=8)

  11 => string 'mdecrypt.*' (length=10)

  另外,我们可以自定义或者使用第三方的流。

  php:/pic/strong>

  PHP有它自己的访问输入/输出(I/O)流的包装器。PHP有基本的php:/pic/pic/pic/O资源。还有一个php:/pic/p>

  因为php:/pic/p>

  复制代码 代码如下:

  1.php:/pic/pic/form-data

  2.仅当Content-Type为application/x-www-form-urlencoded且提交方法是POST方法时,$_POST数据与php:/pic/p>

  3.php:/pic/p>

  流上下文(Stream Contexts)

  这部分内容在编程中几乎没有遇到过,本人研究起来也比较吃力,大家感兴趣的话可以自行百度。

【PHP中的流是什么呢】相关文章:

PHP中的流是什么01-09

PHP中的Streams是什么07-30

PHP中的trait是什么08-03

PHP中MySql操作是什么02-09

PHP7.1中重大更新是什么01-11

php是什么11-15

PHP中的Trait11-20

PHP简介是什么07-01

PHP框架是什么11-13