在php中绕过执行时间限制

时间:2015-02-07 14:18:03

标签: php ini execution-time

我有一些需要很长时间才能执行的功能(在我的情况下下载一些外部图像),我想避免execution time exceeded错误。

有没有办法避免这种情况(例如将单个图像下载到单个php' 线程等等)?

我无法更改execution time limit或任何ini settings

我无法使用cron,因为它在WordPress主题中使用,我无法控制最终用户的平台。

2 个答案:

答案 0 :(得分:1)

其中一种可能性是创建一个PHP脚本来下载一个外部映像,然后使用Ajax调用该脚本。然后,您可以使用JavaScript构建用户界面,逐个调用每个图像的PHP脚本。它可以显示一些进度条,具体取决于已经下载了多少图像。

答案 1 :(得分:0)

是的,你可以。但是,如果远程服务器不了解部分传输下载,则必须托管或代理要通过块下载的映像。

然后你必须让你的PHP脚本通过数据块向服务器请求图像

请求

GET /proxy/?url=http://example2.com/myimage.jpg HTTP/1.1
Host: www.example.com
Range: bytes=200-1000

答案

HTTP/1.1 206 Partial Content
Date: Tue, 17 Feb 2015 10:50:59 GMT
Accept-ranges: bytes
Content-range: bytes 200-1000/6401
Content-type: image/jpeg
Content-length: 800

你可以选择多次调用你的php脚本来获取所有块:自动刷新页面,ajax请求,...