PHP输入输出流学习笔记


Posted in PHP onMay 12, 2015

PHP输入和输出流是通过php://来访问的,它允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。
php://stdin, php://stdout 和 php://stderr
php://stdin,php://stdout 和 php://stderr允许访问 PHP 进程相应的输入或者输出流。
php://input
php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA(原生的post数据),因为它不依赖于特定的 php.ini 指令,内存消耗更少。如下例:

<form action="" method="post">
  <input type="text" name="test" > <input type="submit" name="" />
</form>
<?php
  echo file_get_contents("php://input");
?>

PHP输入输出流学习笔记

结果:

php://output
php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。
php://fd
php://fd 允许直接访问指定的文件描述符。 例如 php://fd/3 引用了文件描述符 3。
php://memory 和 php://temp
php://memory 和 php://temp 是一个类似文件 包装器的数据流,允许读写临时数据。 两者的唯一区别是 php://memory 总是把数据储存在内存中, 而 php://temp 会在内存量达到预定义的限制后(默认是 2MB)存入临时文件中。 临时文件位置的决定和 sys_get_temp_dir() 的方式一致。
php://filter
php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。参数如下:

PHP输入输出流学习笔记

如下例:

<?php
/* 这会以大写字母输出 3water.com 的全部内容 */
readfile("php://filter/read=string.toupper/resource=https://3water.com");
?>
PHP 相关文章推荐
编译问题
Oct 09 PHP
用文本作数据处理
Oct 09 PHP
信用卡效验程序
Oct 09 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php empty函数判断mysql表单是否为空
Apr 12 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 #PHP
php中get_defined_constants函数用法实例分析
May 12 #PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 #PHP
php遍历类中包含的所有元素的方法
May 12 #PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 #PHP
php实现每天自动变换随机问候语的方法
May 12 #PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 #PHP
You might like
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
php三元运算符知识汇总
2015/07/02 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
php 数据结构之链表队列
2017/10/17 PHP
索趣科技的答案
2007/02/07 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
python实现简单登陆流程的方法
2018/04/22 Python
flask框架视图函数用法示例
2018/07/19 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
python三引号如何输入
2020/07/06 Python
python遍历路径破解表单的示例
2020/11/21 Python
致跳远、跳高运动员广播稿
2014/01/09 职场文书
高中毕业自我评价
2014/02/08 职场文书
创新比赛获奖感言
2014/02/13 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
统计学教授推荐信
2014/09/18 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL