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 相关文章推荐
文件系统基本操作类
Nov 23 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
PHP5函数小全(分享)
Jun 06 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
php生成图片缩略图功能示例
Feb 22 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP实现网站访问量计数器
Oct 27 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 02 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 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中文分词 自动获取关键词介绍
2012/11/13 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
python中List的sort方法指南
2014/09/01 Python
python的else子句使用指南
2016/02/27 Python
Python 操作MySQL详解及实例
2017/04/30 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Python如何将模块打包并发布
2020/08/30 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
学雷锋的心得体会
2014/09/04 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
重阳节简报
2015/07/20 职场文书