php 讀取shell管道傳輸過來的內容

2022-10-06 14:06:20 字數 938 閱讀 5461

暮夏,您好!

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...