谈谈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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
php中截取字符串支持utf-8
Jan 18 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php格式化日期实例分析
Nov 12 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
php将字符串转换成16进制的方法
Mar 17 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
laravel配置Redis多个库的实现方法
Apr 10 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 magic quotes的详解
2013/06/17 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
jQuery Ajax文件上传(php)
2009/06/16 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
Python列表操作方法详解
2020/02/09 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
查看keras的默认backend实现方式
2020/06/19 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
大学同学聚会邀请函
2014/01/19 职场文书
个人借款担保书
2014/04/02 职场文书
小学数学课题方案
2014/06/15 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
导游词之山东孔庙
2019/11/04 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android