php 读取shell管道传输过来的内容


Posted in PHP onMarch 01, 2010

暮夏,您好!
rainbird给您发了短消息:
已经写了不少后台运行的deamon了.用的挺顺手的,但是我现在想获取管道传过来的内容,不知道咋实现,类似echo "aaaa" |a.php,a.php怎么获得echo的内容,不知道您有什么高见.
今天收到一条消息,解决的方法给大家分享一下:
实际上,shell 的 | 实际上表示的是 前一个的 标准输出 作为后一个的标准输入。虽然实现是通过pipe来实现的,
但是你写php代码的时候不需要知道底层的运作。你直接作为标准输入读取就可以了:
下面是一个实验代码:

<?php 
$fp = fopen("php://stdin", "r"); 
$s = ''; 
while (!feof($fp)) 
{ 
$s .= fgets($fp, 128); 
} 
var_dump($s); 
fclose($fp); 
?>

测试方法:
ls -lh | php php_read_pipe.php

Rainbird 还给出更加简单的代码:
file_get_contents('php://stdin')
如果是有很多数据要传输过来,一般来说,是每4K传输一次。
直到传输完成。那可能不能简单的使用:
file_get_contents('php://stdin')。这样的话,一直会在等待。
分开处理的话,能够,读取一定的量后处理一部分。然后释放掉一部分的内存。
比如我要遍历所有的文件。可以这样处理
find / | php php php_read_pipe.php
大家根据具体情况具体分析。
PHP 相关文章推荐
PHP 数字左侧自动补0
Mar 31 PHP
php中explode与split的区别介绍
Oct 03 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
非常经典的PHP文件上传类分享
May 15 PHP
基于PHP微信红包的算法探讨
Jul 21 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
PHP程序员学习使用Swoole的理由
Jun 24 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
php源码的安装方法和实例
Sep 26 PHP
php 连接mssql数据库 初学php笔记
Mar 01 #PHP
discuz authcode 经典php加密解密函数解析
Jul 12 #PHP
php下使用SimpleXML 处理XML 文件
Feb 27 #PHP
PHP 导出数据到淘宝助手CSV的方法分享
Feb 27 #PHP
基于pear auth实现登录验证
Feb 26 #PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 #PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 #PHP
You might like
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
来自PHP.NET的入门教程
2006/10/09 PHP
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
PHP微商城开源代码实例
2019/03/27 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
Python实现配置文件备份的方法
2015/07/30 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
Java和Javasciprt的区别
2012/09/02 面试题
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
商场营业员岗位职责
2015/04/14 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
2016年教代会开幕词
2016/03/04 职场文书