【问题标题】:PHP file_get_contents returns false for too large of a file?PHP file_get_contents 为太大的文件返回 false?
【发布时间】:2014-06-23 17:04:30
【问题描述】:

我正在运行一个 facebook fql 查询,它返回一个大的 json 字符串。然后我 file_get_contents URL。如果我将 fql 查询限制为 100 个结果,我的 file_get_contents() 返回正常。如果我达到 200 个结果,file_get_contents() 将返回 false。

我已经通过 facebook 开放图形资源管理器对其进行了测试,并且 100 和 200 个查询都运行良好。此外,在我的本地主机上,我可以得到 200 个结果。在我的生产中,我只能得到 100。当我尝试 200 时,file_get_contents 返回 false。

我的生产环境中是否有一个 php.ini 设置阻止 file_get_contents 处理过大的文件?

【问题讨论】:

  • f_g_c 会吸收它被告知的任何东西。它的功能没有限制,只要 PHP 有足够的内存来保存它。
  • 也许它与内存限制有关?您可能还应该在运行 file_get_contents 之前尝试一些其他值并检查内存使用情况。我不知道这是否可能,但如果 PHP 知道内存限制几乎已达到 sed,它可能会以某种方式停止读取?如果您在不使用 file_get_contents 的浏览器中简单地启动此 url 会发生什么?

标签: php file-get-contents


【解决方案1】:

manual 中找到file_get_contents 返回读取数据或FALSE 失败。

所以,如果它返回FALSE,那么肯定是其他地方出了问题,你可能不知道是什么,因为错误被隐藏了。

尝试将错误日志启用到E_WARNING 级别,在file_get_contents 代码周围加上一个try...catch 块,该块记录您磁盘上的某个文件。这会告诉你错误在哪里。

(记得在更改php.ini文件之前上传try..catch更新的代码)

Here 你找到了一个其他人可能面临类似问题的例子。

【讨论】:

    猜你喜欢
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2018-03-24
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多