在PHP中给定URL时,我是否使用fopen或curl加载XML文件

时间:2010-04-29 18:23:50

标签: php xml curl fopen

我有一个可以通过URL获取的XML文件。我知道我可以使用fopen获取文件,但有时我看到脚本使用curl。使用curl而不是fopen获取XML文件是否有优势?

3 个答案:

答案 0 :(得分:3)

allow_url_fopen,如果要打开fopen的远程文件,则必须禁用;因此,有些情况下fopen('http://...')是不可能的。
注意:在这个答案中,我说“fopen”,但它与所有可以访问远程文件的PHP函数完全相同:fopenfile_get_contents,{{1 ,},

另一方面,curl是一个扩展名,并不总是启用。


一个很好的卷曲是它很容易配置,并且有很多现有的选项(见curl_setopt

要配置simplexml_load_file访问远程文件的方式,这有点棘手 - 您通常必须使用流(例如,参见here;而且,一般来说,有更多的人知道卷曲,而不是开发人员掌握流。


最安全的方式 - 特别是如果您的应用程序将部署到您不是管理员的服务器上,并且无法重新配置:

  • 尝试一种解决方案
  • 并且,如果它不起作用,请尝试另一个

答案 1 :(得分:1)

fopen使用起来更简单,我认为并非所有服务器设置都支持开箱即用。如果fopen适合你,那可能是你最好的选择。

答案 2 :(得分:1)

好吧,如果您打算使用SimpleXML加载文件,可以使用

simplexml_load_file($filename);

但是,某些服务器会限制此功能加载网址。在这种情况下,您将被限制为cURL。