不幸的是我现在无法检查它,因为XML (将在另一台服务器上)处于脱机状态。 xml文件的URL如下所示:http://url.com:123/category?foo=bar。它没有.xml文件扩展名,你可以看到。我忘了插入文件检查以避免错误消息打印出xml文件的URL simple_load_file可以正常使用该URL,但我不确定file_exists!
这会有用吗?:
if(file_exists('http://url.com:123/category?foo=bar')) {
$xml = simplexml_load_file('http://url.com:123/category?foo=bar');
//stuff happens here
} else{echo 'Error message';}
我不确定,因为file_exists不适用于URL。 谢谢!
答案 0 :(得分:1)
正如您所怀疑的那样,file_exists()
无法使用网址,但fopen()
和fclose()
会:
if (fclose(fopen("http://url.com:123/category?foo=bar", "r"))) {
$xml = simplexml_load_file('http://url.com:123/category?foo=bar');
//stuff happens here
} else {
echo 'Error message';
}
答案 1 :(得分:1)
如果您只是尝试获取数据来解析它,那么它并没有用。特别是如果您调用的URL是程序/脚本本身。这只意味着脚本执行了两次。
我建议您使用file_get_contents()
获取数据,处理/捕获错误并解析获取的数据。
只是阻止错误:
if ($xml = @file_get_contents($url)) {
$element = new SimpleXMLElement($xml);
...
}