2016-05-05 8 views
1

Ich möchte XML-Datei von einem anderen Server analysieren.Parse XML-Datei von URL mit PHP

<?php 

    $xml = simplexml_load_file('http://example_page.com/api/test.xml'); 

?> 

Und dieser Code funktioniert nur, wenn diese Datei auf demselben Server wie Seite ist, aber ich habe auf einem anderen Server XML-Datei einsehen.

von Webseite Warnung:

Warning: simplexml_load_file(http://example_page.ugu.pl/api/test.xml) [function.simplexml-load-file]: failed to open stream: Connection refused in /virtual/z/y/example_page.ugu.pl/index.php on line 14 

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://example_page.com/api/test.xml" in /virtual/z/y/example_page.ugu.ugu.pl/index.php on line 14 

P. S. allow_url_fopen ist immer noch aktiv.

Antwort

1

Scheint, wie es einige Umleitung Problem in der URL ist, dass Sie den Zugriff auf und die meisten wahrscheinlich simplexml_load_file() nicht Umleitungen folgen ...

So ist die Lösung file_get_contents() oder cUrl wäre die Verwendung ...

Als file_get_contents() einfacher ist, zeige ich, dass nur ...

Der Code würde, etwas sein wie:

<?php 

    $xml = simplexml_load_string(file_get_contents('http://example_page.ugu.pl/api/test.xml')); 

?> 

Mehr:

<?php 

    $xml = simplexml_load_string(file_get_contents('http://jakdojade.pl/pages/api/outputs/schedules.xml')); 

?> 

^Das auch, total funktioniert!

+0

Mit diesem habe ich immer noch Fehler. Warnung: file_get_contents (http://example_page.com/api/test.xml) [function.file-get-contents]: Der Stream konnte nicht geöffnet werden: Verbindung wurde in /virtual/z/y/examle_page.com/index.php abgelehnt in Zeile 24 PS Ich bin sicher, dass allow_url_fopen eingeschaltet ist, denn ich habe es mit phpinfo() überprüft; – Zyngi

+0

Der Grund ist nichts, aber die Webseite, auf die Sie zugreifen möchten, ist ... down ... Und ... wirklich tbh, haben Sie versucht, http://example_page.com/api/test.xml von Ihrem Browser aus aufzurufen Browser? – Ikari

+0

Ja. Hier ist der richtige Link. http://jakdojade.pl/pages/api/outputs/schedules.xml – Zyngi

0

Sie sollten CURL verwenden (wenn aktiv).

$url = "http://www.you-web-here.com/"; 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$xmlString = curl_exec($curl); 
+0

Es funktioniert! Vielen Dank! – Zyngi

+0

Es wird empfohlen, Curl zu verwenden;), begrüßen Sie. – Grommy

0

PHP Dokumentation:

Note: 
Libxml 2 unescapes the URI, so if you want to pass e.g. b&c as the URI parameter a, you have to call simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Since PHP 5.1.0 you don't need to do this because PHP will do it for you. 

So. Welche Version verwendest du?

Oder Sie können wie folgt versuchen:

$xml_content = file_get_content('http://example_page.com/api/test.xml'); 
xml = simplexml_load_string($xml_content); 
+0

Ah, tut mir leid, ist file_get_contents, nicht file_get_content, verloren ein s-Diagramm – steve

+0

Es funktioniert auch! Vielen Dank! – Zyngi