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

Posted

技术标签:

【中文标题】检查xml(没有文件扩展名)是不是存在的最佳方法【英文标题】:best way to check if xml (without file extension) exists检查xml(没有文件扩展名)是否存在的最佳方法 【发布时间】:2016-02-04 07:47:59 【问题描述】:

很遗憾,我现在无法检查它,因为 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
 elseecho 'Error message';

我不确定,因为 file_exists 不适用于 URL。 谢谢!

【问题讨论】:

【参考方案1】:

正如您所怀疑的,file_exists() 不适用于 URL,但 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';

【讨论】:

【参考方案2】:

如果你只是尝试获取数据来解析它,它并不是很有用。特别是如果您调用的 URL 是程序/脚本本身。这只是意味着脚本被执行了两次。

我建议您使用file_get_contents() 获取数据,处理/捕获错误并解析获取的数据。

只是阻止错误:

if ($xml = @file_get_contents($url)) 
  $element = new SimpleXMLElement($xml);
  ...

【讨论】:

这是有道理的,因为 XML 可以变得相当长。谢谢。

以上是关于检查xml(没有文件扩展名)是不是存在的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

检查 C 中是不是存在文件的最佳方法是啥?

检查 C++ 中是不是存在文件的最佳方法是啥? (跨平台)

如何检查文件是不是存在没有PHP中的扩展名?

检查文档是不是存在并根据 CosmosDB 中的结果插入的最佳方法是啥?

检查电子邮件是不是存在的最佳方法

检查属性是不是存在的最佳方法是啥? [复制]