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 相关文章推荐
mysql 全文搜索 技巧
Apr 27 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php短址转换实现方法
Feb 25 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
php判断表是否存在的方法
Jun 18 PHP
php实现微信公众号无限群发
Oct 11 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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批量生成静态HTML的简单原理和方法
2014/04/20 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
Python hashlib模块的使用示例
2020/10/09 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
建材业务员岗位职责
2013/12/08 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
电力培训心得体会
2014/09/02 职场文书
学位证书委托书
2014/09/30 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
旷课检讨书
2015/01/26 职场文书
2016新年慰问信范文
2015/03/25 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技