检查xml(没有文件扩展名)是否存在的最佳方法

时间:2015-11-03 23:48:53

标签: php xml url file-exists

不幸的是我现在无法检查它,因为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。 谢谢!

2 个答案:

答案 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);
  ...
}