长时间执行php cURL脚本而不更改php.ini设置

时间:2010-01-25 06:33:49

标签: php wordpress curl libcurl

方案

我在博客上有一个旧博客,其中包含数千张图片和帖子,我已经使用导入服务(不导入图片)将博客中的帖子导入wordpress现在我想编写一个php cURL脚本从我的旧博客博客下载所有图像到wordpress。

问题

我已经编写了一个脚本,遍历所有帖子并找到博客的图像链接并递归下载链接并将它们存储在wordpress安装本地,但问题是如果脚本花费的时间超过{{1通常设置为30秒。现在我不想更改php.ini文件中的设置。 有没有什么方法可以保持我的脚本执行那么长的时间或其他一些替代方案....比如批量执行或其他什么......

不改变php.ini设置的原因是我想将此脚本作为wordpress的opensource插件发布,并且很多人都无法访问服务器上的php.ini文件,并且很多人不喜欢更改设置一个可能只运行一次的脚本。

感谢您的帮助......

2 个答案:

答案 0 :(得分:4)

您可以在运行时修改某些ini设置,因此它们只会影响脚本的当前版本。在这种情况下,有一个特殊功能,set_time_limit()

set_time_limit(0);

这将有效地消除脚本执行的时间限制。所有其他脚本都不会受到影响。

答案 1 :(得分:0)

如果您能够在其他非零时间内调用set_time_limit,则可以在每次重复时重置时间限制,因为定时器每次设置都会重置。

或者,更好地说文档:

  

调用时,set_time_limit()重新启动   超时计数器从零。在   换句话说,如果超时是   默认30秒,25秒   进入脚本执行一个调用,如   set_time_limit(20)是脚本   将运行总共45秒   在超时之前。

确保为每次迭代选择足够长的时间来完成