谈谈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+Html+缓存
Dec 20 PHP
PHP常用函数小技巧
Sep 11 PHP
php session 错误
May 21 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
PHP使用递归生成文章树
Apr 21 PHP
php自定义分页类完整实例
Dec 25 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 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脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Python版中国省市经纬度
2020/02/11 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
大学生工作推荐信范文
2013/12/02 职场文书
设计师求职信模板
2014/05/06 职场文书
出国英文推荐信
2014/05/10 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
地方课程教学计划
2015/01/19 职场文书
工程合作意向书范本
2015/05/09 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
MySQL如何使备份得数据保持一致
2022/05/02 MySQL
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技