2014-04-29 97 views
1

我是执行循环,内部循环内部循环中有数据处理函数。php通过循环迭代时回显结果

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); 
    } 

该循环需要很长时间才能执行,并且在整个循环完成时结果会在最后回显。

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

其实这里发生了什么?做结果存储在缓冲区,并在最后回应或什么?

+1

在循环的结束,你写的var_dump($根),所以它会打印出结果。如果他每次都想写它,只需在最后使用print_r或echo命令即可。 – KinjalMistry

+1

@ user3540050是的,但他希望它打印每个循环。但它打印一次。 –

+0

还有一件事是,你正在循环调用第三方API调用,所以每次调用第三方URL时,都需要一定的时间来进行这个循环。 – KinjalMistry

回答

4

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(); 
} 
+0

谢谢,它有帮助。 – user123

+0

还剩3分钟到选定答案。 upvote如果你认为这个问题会帮助其他人 – user123

1

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

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

如果你想在循环中显示的结果,更好地利用控制台/ CMD(命令行)

Here的东西,将帮助您使用PHP和命令行。