XML von einer URL einlesen und weiterverarbeiten
am 06.11.2008 - 23:45 Uhr in
Hi,
ich finde leider keine möglichkeit XML-Daten von einer URL einzulesen und weiter zu verarbeiten. Ich habs schon versucht per PHP als Eingabeformat über die SimpleXML-Funktion, das hat aber nicht geklappt. Es sind keine XML-Feeds.
- Anmelden oder Registrieren um Kommentare zu schreiben

Kommt drauf an
am 07.11.2008 - 12:41 Uhr
Hallo,
wir wissen natürlich nicht was du genau machen möchtest, aber hier mal ein einfaches Beispiel für Amazon-Daten:
$request = 'http://ecs.amazonaws.de/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=1234567890&AssociateTag=abcdefgh-21&Operation=ItemLookup&ItemId=3726259856&ResponseGroup=Images';$response = file_get_contents($request);
$buch = simplexml_load_string($response);
foreach($buch->Items->Item as $content) {
print '<div><img src="'.$content->MediumImage->URL.'" /></div>';
}
Man startet also eine Anfrage ($request), erhält eine Antwort ($response), wandelt diese in ein PHP-Objekt um (simplexml_load_string) und kann dann damit arbeiten. Die Struktur des umgewandelten Objekts (hier $buch) kriegst du mit var_dump o.ä. raus.
Gruß,
Boris
Danke für das
am 07.11.2008 - 17:05 Uhr
Danke für das Beispiel
konkret geht es momentan und eine Gamerseite. Deren Ränge werden auf einem zentralen Server gespeichert und können über XML abgerufen werden und in die Webseite integriert werden.
URL: http://stats.enemyterritory.com/?xml=true
aber wie es aussieht wird die simplexml abfrage von meinem Server nicht unterstützt ich kriege folgende Fehlermeldung:
URL file-access is disabled in the server configuration in /.../includes/common.inc(1547) : eval()'d code on line 4.Gibts da eine Ausweichlösung oder wars das?
Tja
am 07.11.2008 - 18:19 Uhr
Mit simplexml hat das eher nichts zu tun, du brauchts nur PHP5 dafür. Die Fehlermeldung deutet eher darauf hin dass file_get_contents nicht erlaubt ist. Das kannst Du probeweise mal durch curl ersetzen (in einer Funktion):
function file_get_contents_curl($url) {$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
Gruß,
Boris
Danke. Eigentlich hab ich
am 07.11.2008 - 20:43 Uhr
Danke.
Eigentlich hab ich die PHP Version 5.2.6 laufen.
Ich hab mal deine curl-Funktion probiert, leider wird überhaupt nichts zurück gegeben,
wenn ich die URL angebe...
php.ini
am 07.11.2008 - 23:15 Uhr
Ich habe ein Statement im php.ini File gefunden, das notwendig ist:
allow_url_fopen = On
Nur dann kann der URL wie eine Datei behandelt werden.
Gruß
Werner