是否有机制,禁用file_get_contents()函数工作?

时间:2010-07-17 11:46:38

标签: php

我使用file_get_contents function从网站获取数据并将数据存储在数据库中。如果有一天剧本开始不起作用,对我来说会非常不方便。

我知道,它可以开始不工作,如果他们改变网站的结构,但现在我害怕,也许有机制来禁用这个功能的工作,可能来自服务器?

我试图找到有关它的文档,但无法获取,所以也许你会帮助我?

谢谢

3 个答案:

答案 0 :(得分:3)

  

我知道,它可以开始不起作用,   如果他们改变了网站的结构,   但现在我害怕,那可能就在那里   是禁用工作的机制   这个功能,可能来自服务器?

是的,可以使用allow_url_fopen选项从php.ini禁用它。您还有其他选项,例如CURL extension

另请注意,如果您要使用file_get_contents函数从安全协议中读取,则需要从php.ini启用 openssl 扩展名。

因此,如果file_get_contents被禁用,您可以使用 CURL 扩展程序。

答案 1 :(得分:2)

可以使用disable_function禁用某些功能。此外,可以使用filesystem functions禁用allow_url_fopen {{}}}的网址支持。因此有可能file_get_contents可能无法按预期工作。

答案 2 :(得分:2)

至少有两个PHP配置指令可能会破坏您的脚本:

  • 如果allow_url_fopen被禁用,则file_get_contents()将无法获取不在本地磁盘上的文件
    • 即。它将无法通过HTTP加载远程页面。
    • 注意:我已经看到该选项被禁用了很多次
  • 当然,使用disable_functions,可以禁用任何PHP函数。


很可能file_get_contents()本身会被禁用......

但远程文件加载......嗯,向您的脚本添加替代加载机制可能是明智之举,如果allow_url_fopen被禁用,则使用curl