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 相关文章推荐
phpMyAdmin 安装教程全攻略
Mar 19 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 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类
2006/11/27 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
Laravel下生成验证码的类
2017/11/15 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python库安装速度过慢解决方案
2020/07/14 Python
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
ECHT官方网站:男女健身服
2020/02/14 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
出纳岗位职责模板
2013/11/27 职场文书
专业技术职务聘任书
2014/03/29 职场文书
一帮一活动总结
2014/05/08 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
培训讲师开场白
2015/06/01 职场文书
安全守法证明
2015/06/23 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
三下乡活动心得体会
2016/01/23 职场文书
JavaScript流程控制(分支)
2021/12/06 Javascript