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 相关文章推荐
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
php无限级分类实现方法分析
Oct 19 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP实现简单计算器小程序
Aug 28 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 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中取得image按钮传递的name值
2006/10/09 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
php如何获取Http请求
2020/04/30 PHP
JavaScript的document对象和window对象详解
2010/12/30 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
python中的随机函数random的用法示例
2018/01/27 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python如何读取、写入JSON数据
2020/07/28 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
linux面试题参考答案(9)
2015/01/07 面试题
销售主管岗位职责范本
2014/02/14 职场文书
社区节水倡议书
2015/04/29 职场文书
物业保安辞职信
2015/05/12 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
公证书
2019/04/17 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js