循环没有输出
No output from the loop
我正在迭代一个巨大的数组,它涉及查询多个 API,以避免数据丢失和超时,我正在这样做:
for ($i = 0; $i < $count; $i++) {
if ($i % 100 == 0) {
echo 'processed: '.$i."\n";
// save to file
}
}
... 如果在测试期间循环是几百次迭代并输出 processed ...
,它会起作用,但在脚本期间在生产环境中什么都没有是 运行,它仅在之后回显所有内容完成。我只是想避免任何超时,因为它需要(并且通常)很长时间。
这个代码块的目的是什么?
好吧,在 $i 达到 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;
}
}
PHP 输出被缓冲;参见 here。如果您刷新缓冲区(或关闭缓冲),您会看到它实时发生。
作为 "belt and braces",如果你真的关心输出,我会在你进入循环之前回显 $count。
我正在迭代一个巨大的数组,它涉及查询多个 API,以避免数据丢失和超时,我正在这样做:
for ($i = 0; $i < $count; $i++) {
if ($i % 100 == 0) {
echo 'processed: '.$i."\n";
// save to file
}
}
... 如果在测试期间循环是几百次迭代并输出 processed ...
,它会起作用,但在脚本期间在生产环境中什么都没有是 运行,它仅在之后回显所有内容完成。我只是想避免任何超时,因为它需要(并且通常)很长时间。
这个代码块的目的是什么? 好吧,在 $i 达到 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;
}
}
PHP 输出被缓冲;参见 here。如果您刷新缓冲区(或关闭缓冲),您会看到它实时发生。
作为 "belt and braces",如果你真的关心输出,我会在你进入循环之前回显 $count。