У меня проблемы с получением XML из файла с помощью функции simplexml_load_file. Я пробовал поискать в Google, но у всех остальных возникают проблемы, когда они получают реальную ошибку или предупреждение. Я не получаю ошибок и предупреждений, но когда я делаю это:
$sims = simplexml_load_file("http://my-url.com/xml.php") or die("Unable to load XML file!");
var_dump($sims);
вывод:
object(SimpleXMLElement)#1 (1) {
[0]=>
string(1) "
"
}
Однако, если я сделаю это:
$ch = curl_init("http://my-url.com/xml.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
вывод:
<?xml version="1.0"?>
<simulators>
<simulator>
<mac>00-1A-4D-93-27-EC</mac>
<friendlyName>a Travis Desk</friendlyName>
<roundSessions>2</roundSessions>
<rangeSessions>0</rangeSessions>
<timePlayed>00:03:21</timePlayed>
</simulator>
</simulators>
Я заставил его работать следующим образом:
$ch = curl_init("http://my-url.com/xml.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$sims = simplexml_load_string($output) or die("Unable to load XML file!");
var_dump($sims);
который выводит:
object(SimpleXMLElement)#1 (1) {
["simulator"]=>
object(SimpleXMLElement)#2 (5) {
["mac"]=>
string(17) "00-1A-4D-93-27-EC"
["friendlyName"]=>
string(13) "a Travis Desk"
["roundSessions"]=>
string(1) "2"
["rangeSessions"]=>
string(1) "0"
["timePlayed"]=>
string(8) "00:03:21"
}
}
Мне просто интересно, почему первый метод не сработал? У меня PHP версии 5.3.2-1ubuntu4.5 и libxml версии 2.7.6, работающие на Ubuntu Server 10.04.
Спасибо!
-Travis