【发布时间】:2013-12-01 19:39:00
【问题描述】:
我有一个发出一堆 cURL 请求的 PHP 脚本。在每个 cURL 请求之后,我想回显一些数据,但目前,只有在每 5-10 个 cURL 请求后才会回显数据。
我尝试过使用ob_flush 和flush,但似乎没有什么不同。以下是我的脚本的基本流程:
<?php
header('Content-Type: text/html; charset=UTF-8');
set_time_limit(0);
ob_start();
$arr = array(); // Lots of strings in this array
foreach ($arr as $elem) {
// Use $elem to make cURL request and return HTML.
// Run regexes on returned HTML.
echo '<pre>';
print_r($matches[1]);
print_r($matches[2]);
echo '</pre>';
ob_flush();
flush();
}
我能做些什么来强制脚本在每次迭代 foreach 循环后输出 echoed/print_r'ed 数据?
非常感谢。
【问题讨论】:
-
是否启用了 mod deflate ?
-
它被禁用了,但我只是取消了
httpd.conf文件中LoadModule deflate_module modules/mod_deflate.so的注释并重新启动了Apache服务器,但它似乎没有任何区别。 -
我应该提一下,如果您从命令行运行这样的脚本,无论回显的数据量如何,它都会在您询问时输出您想要的所有数据。此外,您不需要使用 ob_ 函数。
标签: php curl flush output-buffering long-running-processes