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过滤危险html代码
Aug 18 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
PHP版 汉字转码的实现详解
Jun 09 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
PHP迭代器的内部执行过程详解
Nov 12 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
PHPStorm+XDebug进行调试图文教程
Jun 13 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
php中array_fill函数的实例用法
Mar 02 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
织梦模板标记简介
2007/03/11 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
jQuery参数列表集合
2011/04/06 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
Python max内置函数详细介绍
2016/11/17 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python 求向量的余弦值操作
2021/03/04 Python
一名老师的自我评价
2014/02/07 职场文书
外国人聘用意向书
2014/04/01 职场文书
2014年保管员工作总结
2014/11/18 职场文书
专职安全员岗位职责
2015/04/11 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
预备党员介绍人意见
2015/06/01 职场文书
2016年寒假见闻
2015/10/10 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
Python实现简单的猜单词
2021/06/15 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python