PHP for循环工作在命令行执行但不在Web浏览器中

时间:2014-07-01 06:56:04

标签: php apache webserver

我尝试了一项活动来检查是否

> FOR / WHILE LOOP

是否失败,如果它循环了几百万条记录......

我的活动

我在表格中有超过1000000条记录,如果我提取并打印它们

通过for循环并使用命令行执行此脚本,它成功运行..

但是当我在网络浏览器中尝试它时,它会卡住并关闭我的浏览器......

所以我想知道它是 PHP 的失败(显然不是在命令行中工作)..

WEB SERVER ???

失败

如果我必须在实时网络应用程序中出现这种情况该怎么办?

我应该切换到更强大的Web服务器,如果是,那么哪一个...... ??

2 个答案:

答案 0 :(得分:2)

我猜测你已经遇到了最大执行时间限制,该限制在命令行上是无限制的,但在Web服务器上默认为30秒。尝试在脚本开头添加以下行以删除限制:

set_time_limit(0);

来自官方的php docs

  

max_execution_time

     

设置以秒为单位的最长时间a   允许脚本在解析器终止之前运行。这个   有助于防止写得不好的脚本占用服务器。该   默认设置为30.从命令行运行PHP时   默认设置为0。

答案 1 :(得分:0)

如果你想在浏览器上打印1 000 000条记录,那你将度过难关......

首先 - FuzzyTree所说的 - 执行时间。但是,如果你说它在cli中有效,我想这不是问题。

这个数据量的问题可能是浏览器,它根本无法处理这么多!在尝试访问该页面时,请查看您的CPURAM使用情况。

如果您真的需要显示用户数百万条记录,请在用户使用ajax到达页面底部时使用分页或加载新记录。