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 4.2书写安全的脚本
Oct 09 PHP
PHP里的中文变量说明
Jul 23 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
php socket实现的聊天室代码分享
Aug 16 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
PHP输出日历表代码实例
Mar 27 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
php实现评论回复删除功能
May 23 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP数组与字符串互相转换实例
May 05 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
JAVA/JSP学习系列之四
2006/10/09 PHP
一个php作的文本留言本的例子(二)
2006/10/09 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
$()JS小技巧
2007/07/21 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
粗略分析Python中的内存泄漏
2015/04/23 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Python开发的实用计算器完整实例
2017/05/10 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
set在python里的含义和用法
2019/06/24 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
社区春季防火方案
2014/06/02 职场文书
优秀员工事迹材料
2014/12/20 职场文书
思想政治表现评语
2015/01/04 职场文书
小学教师节活动总结
2015/03/20 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书