Я перебираю огромный массив, и он включает запросы к нескольким API, поэтому, чтобы избежать потери данных и времени ожидания, я делаю это:
for ($i = 0; $i < $count; $i++) {
if ($i % 100 == 0) {
echo 'processed: '.$i."\n";
// save to file
}
}
… это работает, если цикл составляет несколько сотен итераций во время тестирования и вывода processed ...
, но в среде prod ничего не происходит во время работы скрипта, он повторяет все только после того, как все выполнено. Я просто хочу избежать любых тайм-аутов, если это занимает (и обычно), долго.
Выход PHP буферизуется; увидеть Вот. Если вы очистите буфер (или отключите буферизацию), вы увидите, что это происходит в режиме реального времени.
Что касается «пояса и фигурных скобок», если вы действительно заботитесь о выводе, я бы повторил счет $, прежде чем вы даже войдете в цикл.
Какова цель этого блока кода?
ну, пока я не достигну 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;
}
}