PHP 中的执行时间


Execution time in PHP

我有几个foreach循环,在我使用的每个循环结束时

set_time_limit(30)

这会将计数器重新启动回零。

现在脚本运行的时间更长(我使用 API 获取 5000-10000 篇文章并将它们存储在数据库中),但过了一段时间(当它处理已经大量数据时),我得到"超过最大执行时间 30 秒"。

可能是因为缺乏记忆吗?我该如何解决这个问题?

该脚本使用 API 获取文章,foreach 循环基本上是这样使用的

foreach($articles as $article)
{
//do stuff with single article using $article
set_time_limit(30);
}

而且我不希望它需要超过 30 秒来获取和处理一篇文章,但显然在脚本运行一段时间后,它会达到该限制。我做错了什么?我不想让脚本使用 set_time_limit(9000) 或类似的东西完成超过 5 秒的工作,最长超过 30 秒,这可能会完成工作,但我想这不是解决问题的好方法?

你为什么不直接做

set_time_limit(0);

脚本的第一行?

如果出于某种疯狂的原因,您觉得必须施加时间限制,请考虑以下事项:

set_time_limit(0);
$n = 0; $inc = 1;
foreach($article as $v){
  // do stuff with $v - Less characters is faster
  $n+=$inc;
}
set_time_limit($n);

更改$inc以满足您的需求。

试试这个:

PHP has a function set_time_limit which sets the time limit of execution.
It has one argument set in seconds.
If you use like this,
set_time_limit(0)
then it will set unlimited time of execution.
Write this code in top.

您可以从这里参考更多内容:http://php.net/manual/en/function.set-time-limit.php

  • 谢谢