php 读取shell管道传输过来的内容
2015-01-24信息快讯网
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数组的使用技巧
PHP中改变图片的尺寸大小的代码
php中用foreach来操作数组的代码
PHP Undefined index报错的修复方法
php max_execution_time执行时间问题
PHP读取网页文件内容的实现代码(fopen,curl等)
PHP读取ACCESS数据到MYSQL的代码
PHP+JS+rsa数据加密传输实现代码
用PHP读取和编写XML DOM的实现代码
PHP文件读写操作之文件读取方法详解
PHP目录函数实现创建、读取目录教程实例
php抓取https的内容的代码
php is_file()和is_dir()用于遍历目录时用法注意事项
php 连接mssql数据库 初学php笔记
discuz authcode 经典php加密解密函数解析
php下使用SimpleXML 处理XML 文件
PHP 导出数据到淘宝助手CSV的方法分享
php str_pad() 将字符串填充成指定长度的字符串
php 读取文件乱码问题
php读取xml实例代码
PHP 采集获取指定网址的内容
PHP 读取文件内容代码(txt,js等)
php读取html并截取字符串的简单代码
php操作sqlserver关于时间日期读取的小小见解
php 向访客和爬虫显示不同的内容
利用PHP制作简单的内容采集器的原理分析
表单复选框向PHP传输数据的代码
在普通HTTP上安全地传输密码
PHP中HTTP方式下的Gzip压缩传输方法举偶
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
弄了个检测传输的参数是否为数字的Function