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导入Excel到MySQL的方法
Apr 23 PHP
php 抽象类的简单应用
Sep 06 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
深入php内核之php in array
Nov 10 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 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中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
让python json encode datetime类型
2010/12/28 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
详解Python中的日志模块logging
2015/06/19 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
TensorFlow损失函数专题详解
2018/04/26 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python-视频分帧&amp;多帧合成视频实例
2019/12/10 Python
adidas泰国官网:adidas TH
2020/07/11 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
美术指导求职信
2014/03/17 职场文书
预备党员公开承诺书
2014/05/28 职场文书
本科生求职信
2014/06/17 职场文书
股东出资协议书
2016/03/21 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers