我在互联网上看到过类似的问题,没有答案。
我想将远程XML页面的源代码返回到字符串中。出于此问题的目的,远程XML页面是:
http://www.test.com/foo.xml
在常规的Web浏览器中,我可以查看页面,源代码是XML文档。但是,当我使用file_get_contents('http://www.test.com/foo.xml')
时,它会返回一个带有相应URL的字符串。
是否要检索XML组件?我不在乎它是否使用file_get_contents,只是可以使用的东西。
答案 0 :(得分:15)
您需要在服务器中设置allow_url_fopen才能使其正常工作。
如果没有,那么您可以使用此功能作为替代:
<?php
function curl_get_file_contents($URL)
{
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $URL);
$contents = curl_exec($c);
curl_close($c);
if ($contents) return $contents;
else return FALSE;
}
?>
借鉴here。
答案 1 :(得分:14)
这看起来很奇怪。 file_get_contents()是否返回其他站点的有效数据(不仅仅是XML)?如果已启用the fopen-wrappers(默认情况下为默认值),则URL只能用作文件名参数。
我猜你以后会处理检索到的XML - 然后你应该可以使用simplexml_load _file()直接将它加载到SimpleXml。
try {
$xml = simplexml_load_file('http://www.test.com/foo.xml');
print_r($xml);
} ...
我建议使用SimpleXML读取XML文件,它非常易于使用。