Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查xml(无文件扩展名)是否存在的最佳方法_Php_Xml_Url_File Exists - Fatal编程技术网

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

Php 检查xml(无文件扩展名)是否存在的最佳方法,php,xml,url,file-exists,Php,Xml,Url,File Exists,不幸的是,我现在无法检查它,因为XML(将在另一台服务器上)处于脱机状态。xml文件的url如下所示:。正如您所看到的,它没有.xml文件扩展名。我忘记插入文件检查,以避免打印出xml文件的url时出现错误消息。 简单的加载文件可以很好地使用该URL,但我不确定文件是否存在 这行吗 if(file_exists('http://url.com:123/category?foo=bar')) { $xml = simplexml_load_file('http://url.com:123/cat

不幸的是,我现在无法检查它,因为XML(将在另一台服务器上)处于脱机状态。xml文件的url如下所示:。正如您所看到的,它没有.xml文件扩展名。我忘记插入文件检查,以避免打印出xml文件的url时出现错误消息。
简单的加载文件可以很好地使用该URL,但我不确定文件是否存在

这行吗

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';}
我不确定,因为文件_存在,不能与URL一起使用。 谢谢大家!

正如您所怀疑的,它不适用于URL,但可以:


如果您只是尝试获取数据以对其进行解析,那么它并不是真正有用的。特别是当您调用的URL本身是程序/脚本时。这只意味着脚本将执行两次

我建议您使用
file\u get\u contents()
获取数据,处理/捕获错误并解析获取的数据

只是阻止错误:

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

这是有道理的,因为XML可能变得相当长。非常感谢。
if ($xml = @file_get_contents($url)) {
  $element = new SimpleXMLElement($xml);
  ...
}