暮夏,您好!
rainbird給您發了短訊息:
已經寫了不少後台執行的deamon了.用的挺順手的,但是我現在想獲取管道程式設計客棧傳過來的內容,不知道咋實現,類似echo "aaaa" |a.php,a.php怎麼獲得echo的內容,不知道您有什麼高見.
今天收到一條訊息,解決的方法給大家分享一下:
實際上,shell 的 | 實際上表示的是 前乙個的 標準輸出 作為後乙個的標準輸入。雖然實現是通過pipe來實現的,
但是你寫php**的時候不需要知道底層的運作。你直接作為標準輸入讀取就可以了:
下面是乙個實驗**:
複製** **如下:
<?php
$fp = fopen("php://stdin", "r"); 程式設計客棧
$s = '';
while (!feof($fp))
var_dump($s); 程式設計客棧
fclose($fp);
?>
測試方法:
複製** **如下:
ls -lh | php php_read_pipe.php
rainbird 還給出更加簡單的**:
file_get_contents('php:')
如果是有很多資料要傳輸過來,一般來說,是每4k傳輸一次。
直到傳輸完成。那可能不能簡單的使用:
file_get_contltfrkqtkents('php://stdin')。這樣的話,一直會在等待。
分開處理的話,能夠,讀取一定的量後處理一部分。然後釋放掉一部分的記憶體。
比如我要遍歷所有的檔案。可以這樣處理
find / | php php php_read_pipe.php
大家根據具體情況具體分析。
本文標題: php 讀取shell管道傳輸過來的內容
本文位址:
如何讀取shell 管道傳輸過來的內容
暮夏,您好!rainbird給您發了短訊息 已經寫了不少後台執行的deamon了.用的挺順手的,但是我現在想獲取管道傳過來的內容,不知道咋實現,類似echo aaaa a.php,a.php怎麼獲得echo的內容,不知道您有什麼高見.實際上,shell 的 實際上表示的是 前乙個的 標準輸出 作為後...
如何讀取shell 管道傳輸過來的內容
暮夏,您好!rainbird給您發了短訊息 已經寫了不少後台執行的deamon了.用的挺順手的,但是我現在想獲取管道傳過來的內容,不知道咋實現,類似echo aaaa a.php,a.php怎麼獲得echo的內容,不知道您有什麼高見.實際上,shell 的 實際上表示的是 前乙個的 標準輸出 作為後...
Redis管道傳輸
redis是乙個tcp 伺服器,並支援請求 響應協議。redis的乙個請求完成需要下面的步驟 管道的基本含義是,客戶端可以傳送多個請求給伺服器,而無需等待答覆所有,並最後讀取在單個步驟中的答應。要檢查redis的管道,只要開始redis的例項,然後在終端鍵入以下命令。echo en ping r n...