2

设想

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

问题

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

不更改 php.ini 设置的原因是我想将此脚本作为 wordpress 的开源插件发布,并且没有多少人可以访问服务器上的 php.ini 文件,而且许多人不喜欢仅更改一个脚本的设置可能只运行一次。

感谢您的帮助....

4

2 回答 2

4

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

set_time_limit(0);

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

于 2010-01-25T06:35:16.597 回答
0

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

或者,文档更好地说:

调用时, set_time_limit()从零重新启动超时计数器。换句话说,如果超时是默认的 30 秒,并且在脚本执行 25 秒后调用了诸如 set_time_limit(20) 之类的调用,则脚本将在超时之前总共运行 45 秒。

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

于 2010-03-14T16:19:52.203 回答