php 讀取shell管道傳輸過來的內(nèi)容
更新時間:2010年03月01日 22:41:26 作者:
已經(jīng)寫了不少后臺運(yùn)行的deamon了.用的挺順手的,但是我現(xiàn)在想獲取管道傳過來的內(nèi)容,不知道咋實(shí)現(xiàn),類似echo "aaaa" |a.php,a.php怎么獲得echo的內(nèi)容,不知道您有什么高見.
暮夏,您好!
rainbird給您發(fā)了短消息:
已經(jīng)寫了不少后臺運(yùn)行的deamon了.用的挺順手的,但是我現(xiàn)在想獲取管道傳過來的內(nèi)容,不知道咋實(shí)現(xiàn),類似echo "aaaa" |a.php,a.php怎么獲得echo的內(nèi)容,不知道您有什么高見.
今天收到一條消息,解決的方法給大家分享一下:
實(shí)際上,shell 的 | 實(shí)際上表示的是 前一個的 標(biāo)準(zhǔn)輸出 作為后一個的標(biāo)準(zhǔn)輸入。雖然實(shí)現(xiàn)是通過pipe來實(shí)現(xiàn)的,
但是你寫php代碼的時候不需要知道底層的運(yùn)作。你直接作為標(biāo)準(zhǔn)輸入讀取就可以了:
下面是一個實(shí)驗(yàn)代碼:
<?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')
如果是有很多數(shù)據(jù)要傳輸過來,一般來說,是每4K傳輸一次。
直到傳輸完成。那可能不能簡單的使用:
file_get_contents('php://stdin')。這樣的話,一直會在等待。
分開處理的話,能夠,讀取一定的量后處理一部分。然后釋放掉一部分的內(nèi)存。
比如我要遍歷所有的文件??梢赃@樣處理
find / | php php php_read_pipe.php
大家根據(jù)具體情況具體分析。
rainbird給您發(fā)了短消息:
已經(jīng)寫了不少后臺運(yùn)行的deamon了.用的挺順手的,但是我現(xiàn)在想獲取管道傳過來的內(nèi)容,不知道咋實(shí)現(xiàn),類似echo "aaaa" |a.php,a.php怎么獲得echo的內(nèi)容,不知道您有什么高見.
今天收到一條消息,解決的方法給大家分享一下:
實(shí)際上,shell 的 | 實(shí)際上表示的是 前一個的 標(biāo)準(zhǔn)輸出 作為后一個的標(biāo)準(zhǔn)輸入。雖然實(shí)現(xiàn)是通過pipe來實(shí)現(xiàn)的,
但是你寫php代碼的時候不需要知道底層的運(yùn)作。你直接作為標(biāo)準(zhǔn)輸入讀取就可以了:
下面是一個實(shí)驗(yàn)代碼:
復(fù)制代碼 代碼如下:
<?php
$fp = fopen("php://stdin", "r");
$s = '';
while (!feof($fp))
{
$s .= fgets($fp, 128);
}
var_dump($s);
fclose($fp);
?>
測試方法:
復(fù)制代碼 代碼如下:
ls -lh | php php_read_pipe.php
Rainbird 還給出更加簡單的代碼:
file_get_contents('php://stdin')
如果是有很多數(shù)據(jù)要傳輸過來,一般來說,是每4K傳輸一次。
直到傳輸完成。那可能不能簡單的使用:
file_get_contents('php://stdin')。這樣的話,一直會在等待。
分開處理的話,能夠,讀取一定的量后處理一部分。然后釋放掉一部分的內(nèi)存。
比如我要遍歷所有的文件??梢赃@樣處理
find / | php php php_read_pipe.php
大家根據(jù)具體情況具體分析。
相關(guān)文章
PHP 將dataurl轉(zhuǎn)成圖片image方法總結(jié)
這篇文章主要介紹了PHP 將dataurl轉(zhuǎn)成圖片image方法的相關(guān)資料,這里提供了兩種方法及實(shí)現(xiàn)方式,需要的朋友可以參考下2016-10-10php實(shí)現(xiàn)過濾字符串中的中文和數(shù)字實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)過濾字符串中的中文和數(shù)字的方法,實(shí)例分析了php操作中文和數(shù)字匹配的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07php實(shí)現(xiàn)敏感關(guān)鍵詞過濾的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何通過php實(shí)現(xiàn)關(guān)鍵詞過濾,文中的示例代碼講解詳細(xì),具有一定的參考價值,有需要的小伙伴可以參考下2023-11-11php中使用getimagesize獲取圖片、flash等文件的尺寸信息實(shí)例
這篇文章主要介紹了php中使用getimagesize獲取圖片、flash等文件的尺寸信息實(shí)例,需要的朋友可以參考下2014-04-04PHP實(shí)現(xiàn)帶進(jìn)度條的Ajax文件上傳功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)帶進(jìn)度條的Ajax文件上傳功能,結(jié)合實(shí)例形式分析了php+ajax文件上傳基礎(chǔ)上添加進(jìn)度條功能相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07PHP實(shí)現(xiàn)多維數(shù)組多字段自定義排序
這篇文章主要介紹了PHP實(shí)現(xiàn)多維數(shù)組多字段自定義排序,通過將待排序數(shù)組的各個數(shù)組的$field保存在一維數(shù)組fieldArr中,在傳入array_multisort中參與排序,相當(dāng)于對$field一維數(shù)組的排序,而后根據(jù)排序后的key重新構(gòu)建傳入的待排序數(shù)組,需要的朋友可以參考下2023-10-10在WordPress的后臺中添加頂級菜單和子菜單的函數(shù)詳解
這篇文章主要介紹了在WordPress的后臺中添加頂級菜單和子菜單的函數(shù)詳解,需要的朋友可以參考下2016-01-01php 命名空間(namespace)原理與用法實(shí)例小結(jié)
這篇文章主要介紹了php 命名空間(namespace)原理與用法,結(jié)合實(shí)例形式總結(jié)分析了PHP命名空間的相關(guān)概念、原理、基本使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-11-11