你能在HTTP请求中执行长时间的操作吗?

时间:2011-10-26 08:06:34

标签: php timeout

我在PHP中编写了一个脚本,用于解析特定信息的URL,并将该信息回显到网页。问题是它在大约200个URL之后退出(我需要~200,000)。没有错误消息或任何东西。发生了什么?服务器端是否存在超时,或者是浏览器问题?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

是的,有PHP超时,也可以是Apache。

最好的办法是从PHP CLI运行脚本,这样就不会超时。

对200,000+网址的操作听起来有点太多了。您应该考虑将它们分解为较小的工作以实现性能,也可能是垃圾邮件。

答案 1 :(得分:0)

为了回显大量数据,您可以使用flush()和ob_flush(),这样就可以在数据部件准备就绪后立即将数据部分推送到浏览器。

<?php
echo "\nStarted\n";
for( $i = 0; $i <10; $i ++ )
{
   sleep(1);
   //do something to get data
   echo "Data part number $i \n";
   ob_flush();
   flush();
 }
 echo "Finished\n";
 ?>