谈谈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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
php PDO中文乱码解决办法
Jul 20 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
基于swoole实现多人聊天室
Jun 14 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
获取URL文件名后缀
2013/10/24 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
yii数据库的查询方法
2015/12/28 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
JavaScript File分段上传
2016/03/10 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Python 私有化操作实例分析
2019/11/21 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
房地产销售大学生自我评价分享
2013/11/11 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
新文化运动的基本口号
2014/06/21 职场文书
学校社团活动总结
2015/05/07 职场文书
2015年暑期见闻
2015/07/14 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
MySQL存储过程及语法详解
2022/08/05 MySQL