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
PHP的分页功能
Mar 21 PHP
php强制下载类型的实现代码
Apr 21 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php设置页面超时时间解决方法
Sep 22 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
php 清除网页病毒的方法
2008/12/05 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PDO::errorInfo讲解
2019/01/28 PHP
浅谈php调用python文件
2019/03/29 PHP
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
js判断节假日实例代码
2017/12/27 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
vue接口请求加密实例
2020/08/11 Javascript
Python程序语言快速上手教程
2012/07/18 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
对Python _取log的几种方式小结
2019/07/25 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
私有程序集与共享程序集有什么区别
2013/04/05 面试题
三个Unix的命令面试题
2015/04/12 面试题
主题酒店策划书
2014/01/28 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2014年小学校长工作总结
2014/12/08 职场文书