Linux 要接收 pipe 來的資料,可以參考此篇:使用 PHP 接收 Linux 中 pipe 的 輸出資料
要持續接收資料,還是可以依照上述那篇文章裡面的程式碼,只是要測試一下,此篇把測試結果在紀錄一下~
PHP 接收 tail 持續 follow (輸入) 的資料
想要 tail -f /var/log/apache2/access.log | ./filter.php # 持續將資料送給 filter.php
再來 filter.php 要將資料持續處理並輸出,寫法有下述幾種:
寫法1:
<?php while ($line = trim(fgets(STDIN))) { echo $line . "\n"; } ?>
寫法2:(限制長度 與 換行輸出)
<?php while ($line = stream_get_line(STDIN, 65535, "\n")) { echo $line; } ?>