Нет выхода из цикла

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

for ($i = 0; $i < $count; $i++) {
if ($i % 100 == 0) {
echo 'processed: '.$i."\n";
// save to file
}
}

… это работает, если цикл составляет несколько сотен итераций во время тестирования и вывода processed ..., но в среде prod ничего не происходит во время работы скрипта, он повторяет все только после того, как все выполнено. Я просто хочу избежать любых тайм-аутов, если это занимает (и обычно), долго.

-1

Решение

Выход PHP буферизуется; увидеть Вот. Если вы очистите буфер (или отключите буферизацию), вы увидите, что это происходит в режиме реального времени.

Что касается «пояса и фигурных скобок», если вы действительно заботитесь о выводе, я бы повторил счет $, прежде чем вы даже войдете в цикл.

1

Другие решения

Какова цель этого блока кода?
ну, пока я не достигну 100, это все равно пустая трата ресурсов ..
ты можешь попробовать:

if( $count > 100 ) {

ini_set('max_execution_time', 0);  // no time limit

// $count contains at least $i times 100
for($i = 1; $i <= $count / 100; $i++) {
echo $i * 100;
}

}
-1

По вопросам рекламы [email protected]