内存管理-php在循环中迭代时回显结果


memory management - php echo the result while iterating through the loop

我是执行循环,循环内部有数据处理功能。

  for($i = 0 ; $i <=680 ; $i = $i + 40)
    {
          $url = 'http://www.yelp.com/biz/franchino-san-francisco?start=80';
          $root = yelp($url);
          var_dump($root);
    }

这个循环需要很长时间才能执行,当整个循环完成时,结果会在最后得到响应。

如何在每次迭代中回显结果?

这里到底发生了什么?结果是否存储在缓冲区中,并在最后进行回显?

PHP缓冲输出。

如果你想立即将内容输出到浏览器,你可以使用flush()ob_flush()函数:

for ($i = 0; $i <= 680; $i += 40) {
    $url = 'http://www.yelp.com/biz/franchino-san-francisco?start=80';
    $root = yelp($url);
    var_dump($root);
    flush();
    ob_flush();
}

如果您通过网页执行PHP,这就是行为。

PHP是一种服务器端语言,所有代码都将在向客户端显示输出之前执行。(使用浏览器)

如果你想在循环中显示结果,最好使用console/cmd(命令行)

以下内容将帮助您使用PHP命令行。