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下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 PHP
smarty实现多级分类的方法
Dec 05 PHP
smarty表格换行实例
Dec 15 PHP
PHP中使用curl入门教程
Jul 02 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
PHP实现微信退款功能
Oct 02 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 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
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
vue项目实战总结篇
2018/02/11 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
python3中int(整型)的使用教程
2017/03/23 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
对Python函数设计规范详解
2019/07/19 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
python time.strptime格式化实例详解
2021/02/03 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
物业管理专业个人的自我评价
2013/11/19 职场文书
一份创业计划书范文
2014/02/08 职场文书
感恩节活动策划方案
2014/05/16 职场文书
考研英语辞职信
2015/05/13 职场文书
2015小学师德工作总结
2015/07/21 职场文书