【问题标题】:php echo the result while iterating through the loopphp 在遍历循环时回显结果
【发布时间】:2014-04-29 04:28:06
【问题描述】:

我是执行循环,循环里面有数据处理函数。

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

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

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

实际上这里发生了什么?结果会存储在缓冲区中,最后回显还是什么?

【问题讨论】:

  • 在循环结束时,你写了 var_dump($root),所以它会打印结果。如果他想每次都写,就在最后加上 print_r 或 echo 命令。
  • @user3540050 是的,但他希望它打印每个循环。但它只打印一次。
  • 还有一件事,你是在循环调用第三方API调用,所以每次都会去调用第三方URL,所以这个循环需要一些时间

标签: php memory-management buffer


【解决方案1】:

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

【讨论】:

  • 距离选定回答还剩 3 分钟。如果您认为这个问题会帮助其他人,请点赞
【解决方案2】:

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

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

如果要在循环内显示结果,最好使用控制台/cmd(命令行)

Here 可以帮助您在命令行中使用 PHP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2016-06-07
    • 2015-05-09
    • 2013-09-14
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多