我有一些函数需要很长时间才能执行(在我的情况下下载一些外部图像),我想避免execution time exceeded
错误。
有没有任何方法可以避免这种情况(例如,将单个图像的下载划分为单个php"线程"或类似的东西)?
我无法更改execution time limit
或任何ini settings
。
我不能像在WordPress主题中那样使用cron作品,也不能控制最终用户的平台。
其中一种可能性是制作一个PHP脚本,下载一个外部映像,并使用Ajax调用该脚本。然后,您可以使用JavaScript构建一个用户界面,它为每个图像逐个调用这个PHP脚本。它可以显示一些进度条,具体取决于已经下载了多少图像。
可以。但是,如果远程服务器不了解部分传输下载,则必须托管或代理要按块下载的映像。
然后,您将不得不让您的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请求。。。