我有一些需要很长时间才能执行的功能(在我的情况下下载一些外部图像),我想避免execution time exceeded
错误。
有没有办法避免这种情况(例如将单个图像下载到单个php' 线程等等)?
我无法更改execution time limit
或任何ini settings
。
我无法使用cron,因为它在WordPress主题中使用,我无法控制最终用户的平台。
答案 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请求,...