Итак, проблема в том, что у меня есть цикл для проверки размера файла, например, файл A.txt составляет 10 байт, а с другими сценариями php A.txt изменяется на 20 байт, поэтому при изменении файла A.txt я хочу итерацию прекратить.
<?php
$i = 1;
$a = filesize("A.txt");
do {
$c = filesize("A.txt");
if ($a >= $c) {
} else {
echo file_get_contents('chat.log');
$i++;
}
} while ($i <= 2);
?>
В чем моя ошибка?
Кажется, вы хотите реализовать давно опрос для приложения чата.
Такой подход может привести к потере некоторых доставляемых сообщений чата. И это не очень масштабируемо.
Я бы посоветовал вам получить ранее известный размер файла с помощью параметра GET и проверить, больше ли он.
Тогда я бы предложил вам использовать fopen, чтобы открыть файл и прочитать из предыдущего указателя (параметр GET) до конца файла, чем каждый раз читать весь файл.
Вы также можете очистить кэш перед каждым размером файла и добавить usleep (100); внутри цикла while.
Других решений пока нет …