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 相关文章推荐
PHP 存储文本换行实现方法
Jan 05 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
php计算整个目录大小的方法
Jun 19 PHP
php实现模拟post请求用法实例
Jul 11 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
PHP中list方法用法示例
Dec 01 PHP
PHP对象实例化单例方法
Jan 19 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
PHP数组与字符串互相转换实例
May 05 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和MySQL保存和输出图片
2006/10/09 PHP
php MYSQL 数据备份类
2009/06/19 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
vue+webpack中配置ESLint
2018/11/07 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
python机器学习之随机森林(七)
2018/03/26 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
python交互模式基础知识点学习
2020/06/18 Python
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
两道JAVA笔试题
2016/09/14 面试题
管理科学大学生求职信
2013/11/13 职场文书
运动会方队口号
2014/06/07 职场文书
销售团队获奖感言
2014/08/14 职场文书
励志演讲稿大全
2014/08/21 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
学校工会工作总结2015
2015/05/19 职场文书
利用js实现简单开关灯代码
2021/11/23 Javascript
Java 数据结构七大排序使用分析
2022/04/02 Java/Android
JavaScript获取URL参数的方法分享
2022/04/07 Javascript