题
我正在在PHP Web应用程序,并想读取其他域的内容。
看来,我的主要选择是fopen
和curl
。
什么是这两种方法之间的主要区别,特别是关于安全和可用的选项?
是否如果URL是http或https站点重要?
解决方案
卷曲使用外部库和它有很多更多的功率来定制请求 - 自定义首部,生成POST请求,上载文件。你需要的一切,我必须说。
F打开只限于只是使URL的GET请求而无需任何进一步的定制。
(如禁止的fopen远程URLS和这样的)至于安全CURL不是由安全配置在PHP影响。
在这两种可能性回报你,你可以在你想每一个可能的方式使用数据。如果您在项目中的一个安全漏洞,获取数据后,是你的错,毕竟。
<击>我也不太清楚,但我认为的fopen无法处理SSL(HTTPS)连接。击>两者的fopen和卷曲支持SSL(由安迪Shellam修改下面的注释说明)。
其他提示
请参阅什么是使用的fopen($网址),并卷曲在PHP?对于影响的fopen即allow_url_include一些安全设置之间的重要区别。
此外,请注意,卷曲如果SETOPT CURLOPT_FOLLOWLOCATION然后卷曲如下重定向到文件://获取数据(仍然受到的open_basedir)。重定向到其他方案如ftp://可能会更糟糕(没有测试FTP://)。如果没有SETOPT袅袅不遵循在所有重定向。 FOPEN在默认情况下,似乎与302的工作,但只有HTTP:// - > HTTP://和的不的HTTP:// - >文件://
不隶属于 StackOverflow