谈谈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 strtr() 函数使用说明
Nov 21 PHP
PHP memcache扩展的三种安装方法
Apr 26 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
PHP新手指南
Apr 01 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
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
iview实现图片上传功能
2020/06/29 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
如何真正的了解python装饰器
2020/08/14 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
写给医院的感谢信
2015/01/22 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
毕业典礼致辞
2015/07/29 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js