【问题标题】:PHP file_get_contents() Timeout?PHP file_get_contents() 超时?
【发布时间】:2012-04-27 20:12:37
【问题描述】:

我正处于构建 PHP 应用程序的早期阶段,其中一部分涉及使用 file_get_contents() 从远程服务器获取大文件并将它们传输给用户。例如,要获取的目标文件是 200 mB。

  • 如果下载到服务器的时间过长,这个过程会超时吗?
  • 如果是这样,有没有办法延长这个超时时间?
  • 这个正在下载的文件是否也可以同时传输给用户,还是必须将文件保存在服务器上,然后在下载完成后由用户手动获取?

我只是想确保在我做太多事情之前知道我的选择或限制。

感谢您的宝贵时间。

【问题讨论】:

  • 您是否因为下载文件需要很长时间而询问 PHP 脚本超时?或者由于某些网络问题与远程服务器的连接超时?
  • 抱歉,我知道网络问题会导致超时,但我的意思是由于下载大文件所需的时间,PHP 超时。
  • 要控制file_get_contents()调用的超时,请看这个问题:stackoverflow.com/questions/10236166/…

标签: php download file-get-contents


【解决方案1】:

是的,您可以使用set_time_limit(0)max_execution_time directive 来取消 PHP 施加的时间限制。

您可以打开文件流,并将其无缝传输给用户。
了解fopen()

【讨论】:

  • 太棒了!我假设php.ini 可以覆盖我使用set_time_limit() 进行的任何设置。我可以在php.ini 中检查哪些设置以确保0 确实会完全消除超时?
【解决方案2】:

如果不是超时,您可能会遇到内存问题,具体取决于您的 PHP 配置方式。您可以通过代码手动调整很多这些设置,没有太大困难。

http://php.net/manual/en/function.ini-set.php

ini_set('memory_limit', '256M');

【讨论】:

    猜你喜欢
    • 2011-04-11
    • 2016-10-10
    • 2014-05-09
    • 2012-04-28
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    相关资源
    最近更新 更多