PHP 接收 tail 持續 follow 的資料

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;
}                                                                                                                                                         ?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈PHP 接收 tail 持續 follow 的資料〉中有 2 則留言

    1. 嗯嗯,我這個場景是看 access.log,需要持續一直觀看,而且是一直大量的進來,這個情況是 tail -F 比較適合。

      剛剛 inotify 研究一下,我之前是靠 find 來做:https://blog.longwin.com.tw/2015/08/linux-bash-monitor-file-modify-merge-2015/

      改用 inotify 來監控檔案修改會比 find 更方便~~ 感謝推薦~ 🙂

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料