【问题标题】:Get arount execution time limit in php绕过php中的执行时间限制
【发布时间】:2015-02-07 14:18:03
【问题描述】:

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

有什么方法可以避免这种情况(例如,将单个图像的下载分成单个 php 'threads' 或类似的东西)?

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

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

【问题讨论】:

  • 你能做 cronjobs 吗?
  • 不,我的操作范围非常有限,因为它是商业 WordPress 主题,我无法控制谁以及如何使用它。
  • 抱歉拼写错误,我无法更改任何 ini 设置。
  • 更新您的问题并在其中提供所有信息。我们不喜欢猜测你能做什么/不能做什么以及为什么。
  • @AdamPietrasiak WordPress 有一个 WordPress cron,你可以使用它,不是吗?

标签: php ini execution-time


【解决方案1】:

其中一种可能性是制作一个下载一个外部图像的PHP脚本,然后使用Ajax调用该脚本。然后,您可以使用 JavaScript 构建一个用户界面,它会为每个图像一个一个地调用这个 PHP 脚本。根据已经下载的图片数量,它可能会显示一些进度条。

【讨论】:

  • 好吧,如果没有办法在 php 中做到这一点,我想用 js 发送小请求将是唯一的解决方案。
  • @AdamPietrasiak 不,我不知道有任何其他解决方案可以在任何地方工作。您的能力非常有限,因为许多 wordpress 用户都在共享主机上。如果我没记错的话,有一些插件使用了这个想法。
【解决方案2】:

是的,你可以。但是,如果远程服务器不理解部分传输下载,您将不得不托管或代理要按块下载的图像。

然后你必须让你的 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 请求......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多