if (file_exists('http://something_from_a_url.xml')) { $xml = simplexml_import_dom('http://something_from_a_url.xml'); print_r($xml); } else { exit('Failed to open xml file.'); }
当我执行此代码时,它说无法打开,我无法理解为什么......
答案 0 :(得分:1)
simplexml_import_dom
采用DOM节点,而不是URL。您应该使用simplexml_load_file
intead:
$xml = simplexml_load_file('http://something_from_a_url.xml');
print_r($xml);
答案 1 :(得分:0)
file_exists()不适用于网址。这甚至对URL都没有意义。
simplexml_import_dom()旨在将DOM节点转换为SimpleXML节点。它期望将DOM节点的实例作为参数。您正在传递URL。
也许你想:
$simplexml = simplexml_load_string(file_get_contents($url));
答案 2 :(得分:0)
检查:
a)simplexml_import_dom的参数是DOMNode。
b)你在php.ini中启用了allow_url_fopen
作为替代方案,您可以尝试将[simplexml_load_file] [3]与URL一起使用,看看发生了什么。
额外链接: php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
php.net/manual/en/function.simplexml-load-file.php
答案 3 :(得分:0)
一般情况下设置禁止此。
您可以尝试使用此方法来验证远程文件的存在。
if (fopen($url, "r")) {
echo "File Exists";
} else {
echo "Can't Connect to File";
}
答案 4 :(得分:0)
什么是
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$contents = file_get_contents('http://something_from_a_url.xml');
echo '<div>Debug: len(contents)=', strlen($contents), "</div>\n";
libxml_use_internal_errors(true);
libxml_clear_errors();
$xml = new SimpleXMLElement($contents);
foreach( libxml_get_errors() as $error ) {
echo 'error: ', $error->$message, "<br />\n";
}
打印?
答案 5 :(得分:0)
它反过来工作,不知道为什么 - 但解决了