Обновить страницу при изменении размера файла - PullRequest
1 голос
/ 13 декабря 2011

У меня есть программа, которая помещает журналы в файл .txt, регулярно обновляя их (каждые несколько секунд).

Я бы хотел, чтобы мой PHP-скрипт проверял размер файла этого .txt, и,если он изменился, обновите страницу.

Это то, что я написал, не работает должным образом:

$filename = "log.txt";

if (file_exists($filename)) {
   $dfile = filesize($filename);
}
echo $dfile;

$c=0;
while($c < 10) {
if ($dfile !== filesize($filename)) {header("Location:http://127.0.0.1/parser.php");}   
else{usleep(2000000);}
}

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

информация вашего заголовка или метаданные, которые браузер использует для перенаправления или обновления после отправки, не будут иметь никакого эффекта.Поскольку браузер будет читать его как одну страницу, а затем игнорировать остальные.

Вместо этого следует использовать ajax, который вызовет php в фоновом режиме и проверит изменение размера файла, а затем вызовет обновление браузера.

1 голос
/ 13 декабря 2011

Как сказал Сид Малани, определенно для таких вещей вы должны использовать AJAX. Я сомневаюсь, что такого рода вещи можно было бы сделать без какого-либо асинхронного опроса. По крайней мере, в браузерной среде (из-за того, как работают браузеры), на консоли это будет совсем не сложно.

Теперь самый простой способ сделать это - просто обновлять страницу каждые несколько секунд с помощью HTML-мета-обновления независимо от того, изменился ли файл журнала на самом деле.

<head>
     <meta http-equiv="refresh" content="20" />
</head>

Если вы знаете, что журналы обновляются каждые несколько секунд, в действительности это не имеет значения, изменился ли их размер или нет, потому что вы можете поспорить, что они в любом случае.

...