2011-08-03 75 views
1

我对PHP的执行时间限制有疑问。我需要在发送HTTP请求的许多小时内运行脚本。这些要求必须分开一段时间,所以这就是为什么整个事情需要花费数小时。有人有经验使用下面的行设置PHP的这种时间限制?例如:扩大PHP执行时间限制

ini_set('max_execution_time', 28800); // 8 hours 

奇怪的问题,我知道,但让我知道如果这将工作与否。 TIA!

更新:我打算从浏览器中尝试它。我不熟悉从命令行运行PHP脚本..我应该看看这个。我确实找到了另一种方法来获取可以从HTTP请求中检索到的信息;事实证明,我们有一个数据库,其中一些信息已经在很长一段时间内在本地积累了。

+0

我通常对命令行(即没有web服务器)使用php进行此操作,限制_at all_。 – Wrikken

+0

您也可以使用flush()和ob_flush()函数。用于刷新输出缓冲区。 并使用set_time_limit(0) –

回答

2

你是从浏览器还是从CLI运行?如果从CLI(如你应该用这样的脚本),没有执行时间限制(即max_execution_time被硬编码为0)

+0

我从浏览器运行我的PHP脚本。你如何从CLI运行它? – musicliftsme

+0

打开你的控制台并键入:'php yourScript.php' – Mchl

2
set_time_limit(28800); 

一些(共享)主机不允许这种

什么,我会建议你的是保持一个日志时,是你最后一次尝试(UNIX时间戳),并使用cron执行脚本,检查如果有时间做出下一个HTTP请求,并且如果是,则将文件中的时间戳更新为当前时间戳。

希望有帮助

+0

'set_time_out()'不是PHP函数(你的意思是'set_time_limit()'?)。从命令行(例如通过cron)执行的脚本没有执行时间限制。 –

+0

@chris感谢您的介绍,我在那里更正了函数名称,对于第二部分,OP没有说过它的CLI的任何地方......: -/ – Pheonix

+0

不,但是如果您通过cron执行脚本,如你的答案所示。 :) –