当前位置: 首页 > 图文教程 > 网络编程 > PHP > 谈谈PHP的输入输出流

PHP
PHP 开发环境的选择、建立及使用(5)
PHP 开发环境的选择、建立及使用(6)
PHP 开发环境的选择、建立及使用(7)
PHP 开发环境的选择、建立及使用(8)
PHP 开发环境的选择、建立及使用(9)
Win2003下APACHE PHP5 MYSQL4 PHPMYADMIN 的简易安装配置
PHP新手上路(八) 文件上传
PHP新手上路(九) 投票系统
PHP新手上路(十) 简易banner动态更替
PHP新手上路(十一) 数据库链接
PHP新手上路(十二)使用PHP来操作Oracle数据库
PHP新手上路(十三)PHP资源
PHP新手上路(十四) 其他杂项
session全教程(一)
session全教程(二)
session全教程(三)
PHP编码规范
第十五节--Zend引擎的发展 -- Classes and Objects in PHP5 [15]
第十四节--命名空间 -- Classes and Objects in PHP5 [14]
第十二节--类的自动加载 -- Classes and Objects in PHP5 [12]

谈谈PHP的输入输出流


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 74 ::
收藏到网摘: n/a

今天有人再PHPCHINA上问我关于PHP传XML怎么做?,再上面已经给出了相应的解决方法。顺便谈谈PHP的输入输出流。
今天暑假在公司的时候,恰好同事使用flash打造流媒体的时候,需要使用PHP读取FLASH传递过来的媒体信息(也是XML格式),在那个时候我也熟悉了PHP的基本输入输出流原理。
手册上说:

PHP 3.0.13 及以上版本,自 PHP 4.3.0 起支持 php://output 和 php://input,自 PHP 5.0.0 起支持 php://filter。

php://stdin
php://stdout
php://stderr
php://output
php://input
php://filter
php://stdin,php://stdout 和 php://stderr 允许访问 PHP 进程相应的输入或者输出流。
php://output 允许向输出缓冲机制写入数据,和 print() 与 echo() 的方式相同。
php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。
php://stdin 和 php://input 是只读的,同时 php://stdout,php://stderr 和 php://output 是只写的。
php://filter 是一种设计用来允许过滤器程序在打开时成为流的封装协议。这对于单独具有完整功能的文件函数例如 readfile(),file() 和 file_get_contents() 很有用,否则就没有机会在读取内容之前将过滤器应用于流之上。


也就是说post的原始数据是保存在一个叫php://input的文件。你可以通过简单的文件操作读取里面的数据来控制。
$data=file_get_contents(’php://input’);