Intereting Posts
Могу ли я установить константу в классе, а затем получить доступ к ней на PHP? Можно ли использовать C ++-файлы из php Разделение электронной почты и Интернета на разных серверах: отправьте письмо через PHP на адрес электронной почты в этом домене If-statement: как вытащить вторую переменную GET Как данные JSON с использованием $ .getJSON из php-файла? 'AND' vs '&&' как оператор Laravel не определен Загрузка файла BlueJQ jQuery с базой данных PDO MySQL fetchAll (), используя удвоенную необходимую память в результате? Хорошо ли использовать сериализацию в PHP для хранения данных в БД? WooCommerce: получить данные Json в многомерном массиве, соответствующие произвольному полю ACF Получить все дочерние, внуки и т. Д. Узлы под родителями, используя php с результатами запроса mysql Управление двумя ролями в кодеринговом Запустите sql-запрос с таймаутом в PHP или Как в PHP, чтобы остановить запрос sql, как только он уже начался? Установка интерфейса API Restler

Как посмотреть файл в PHP?

Я хочу сделать движение, такое как команда хвоста, с PHP, но как можно смотреть append к файлу?

Solutions Collecting From Web of "Как посмотреть файл в PHP?"

Я не верю, что есть волшебный способ сделать это. Вам просто нужно постоянно проверять размер файла и выводить любые новые данные. На самом деле это довольно просто, и единственное, что нужно учитывать, это то, что размеры файлов и другие данные статистики кэшируются в php. Решением этого является вызов clearstatcache() перед clearstatcache() любых данных.

Вот быстрый пример, который не включает обработку ошибок:

 function follow($file) { $size = 0; while (true) { clearstatcache(); $currentSize = filesize($file); if ($size == $currentSize) { usleep(100); continue; } $fh = fopen($file, "r"); fseek($fh, $size); while ($d = fgets($fh)) { echo $d; } fclose($fh); $size = $currentSize; } } follow("file.txt"); 
 $handle = popen("tail -f /var/log/your_file.log 2>&1", 'r'); while(!feof($handle)) { $buffer = fgets($handle); echo "$buffer\n"; flush(); } pclose($handle); 

Checkout php-tail в коде Google . Это реализация 2-х файлов с PHP и Javascript, и в моем тестировании очень мало накладных расходов.

Он даже поддерживает фильтрацию с ключевым словом grep (полезно для ffmpeg, который выплескивает частоту кадров и т. Д. Каждую секунду).

 $handler = fopen('somefile.txt', 'r'); // move you at the end of file fseek($handler, filesize( )); // move you at the begining of file fseek($handler, 0); 

И, вероятно, вы захотите рассмотреть использование stream_get_line

Вместо опроса файлов вы регулярно проверяете время изменения файла: filemtime

Ниже я адаптировался сверху. Назовите его периодически с помощью ajax-вызова и добавьте к своему «держателю» (textarea) … Надеюсь, это поможет … спасибо всем вам, кто вносит вклад в stackoverflow и другие подобные форумы!

 /* Used by the programming module to output debug.txt */ session_start(); $_SESSION['tailSize'] = filesize("./debugLog.txt"); if($_SESSION['tailPrevSize'] == '' || $_SESSION['tailPrevSize'] > $_SESSION['tailSize']) { $_SESSION['tailPrevSize'] = $_SESSION['tailSize']; } $tailDiff = $_SESSION['tailSize'] - $_SESSION['tailPrevSize']; $_SESSION['tailPrevSize'] = $_SESSION['tailSize']; /* Include your own security checks (valid user, etc) if required here */ if(!$valid_user) { echo "Invalid system mode for this page."; } $handle = popen("tail -c ".$tailDiff." ./debugLog.txt 2>&1", 'r'); while(!feof($handle)) { $buffer = fgets($handle); echo "$buffer"; flush(); } pclose($handle);