谈谈PHP的输入输出流


Posted in PHP onFebruary 14, 2007

今天有人再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’); 

PHP 相关文章推荐
php分页函数
Jul 08 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
PHP 日志缩略名的创建函数代码
May 26 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
浅析php header 跳转
Jun 17 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
PHP中session变量的销毁
Feb 27 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
thinkphp 验证码 的使用小结
May 07 PHP
修改了一个很不错的php验证码(支持中文)
Feb 14 #PHP
PHP数据缓存技术
Feb 14 #PHP
再次研究下cache_lite
Feb 14 #PHP
cache_lite试用
Feb 14 #PHP
一个捕获函数输出的函数
Feb 14 #PHP
模拟flock实现文件锁定
Feb 14 #PHP
回答PHPCHINA上的几个问题:URL映射
Feb 14 #PHP
You might like
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
PHP中的替代语法简介
2014/08/22 PHP
php取得字符串首字母的方法
2015/03/25 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
介绍Python的@property装饰器的用法
2015/04/28 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python类中super()和__init__()的区别
2016/10/18 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
python中p-value的实现方式
2019/12/16 Python
python中sys模块是做什么用的
2020/08/16 Python
Python多分支if语句的使用
2020/09/03 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
浅析Python的命名空间与作用域
2020/11/25 Python
2014年感恩节活动策划方案
2014/10/06 职场文书
员工福利申请报告
2015/05/15 职场文书
五一放假通知怎么写
2015/08/18 职场文书
《穷人》教学反思
2016/02/19 职场文书
用golang如何替换某个文件中的字符串
2021/04/25 Golang
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript