xml aus url in file ablegen...?!

  • xml aus url in file ablegen...?!

    Hey Leute,

    hab das Problem, dass ich ein XML-Dokument per php aufrufen (also zb. www.externeseite.de/datei.xml) und so wie es ist in einem Ordner als datei.xml ablegen will. Hintergrund ist, dass das Parsen von XML so deutlich schneller von Statten geht. Parsen funktioniert auch alles wunderbar - nur mit dem abholen der Daten tu ich mir grad bissl schwer.... kann mir jemand einen Tipp geben, wie ich das angehen kann?! Danke!
  • hi,

    nutzt du php5? da sind ja bereits gute DOM funktionen dabei
    aber wenn es nur ums abholen geht, dann nutze doch [phpdoc]file_get_contents[/phpdoc]

    hier mal ein simples php5 beispiel

    Quellcode

    1. <?php
    2. //Laden
    3. $content = file_get_contents("http://www.easy-coding.de/rss.php");
    4. //Parsen
    5. $doc = DOMDocument::loadXML($content);
    6. //Ausgeben
    7. echo $doc->saveXML();
    8. //Speichern
    9. $doc->save('result.xml');
    10. ?>
  • hm... irgendwie hab ich hier noch einen fatal error...

    Call to undefined function: loadxml()

    aber was mich noch viel mehr wundert ist, dass ich mein xml-Dokument mit file_get_contents nicht aufrufen kann... !!?? jedes andere xml-Dokument funktioniert, nur dieses nicht... er lädt sich den wolf und schmeisst nicht mal nen fehler.. irgendeine ahnung!? wenn ich die url normal aufrufe hab ich sofort die Seite. Wenn ich den XML-Content abziehe und lokal speicher gehts auch... liegt also nicht am xml selber sondern eher am Aufruf...? keine Ahnung... :cry:
  • leider ist bei den DOM Funktionen nicht mehr so schön dokumentiert, ab wann genau sie in php5 eingeflossen sind

    vermutlich hast du eine ältere php5 version

    aber ums parsen gings ja auch eigentlich gar nicht. das hast du ja auch selbst gelöst.
    aber file_get_contents ist auch merkwürdig..

    sicher, kann man php den zugriff auf externe urls verbieten..
    aber dann wird nicht unterschieden zwischen verschiedenen urls

    und natürlich kann man den download auch anhand des referers blocken, aber auch das ist unrealistisch, wenn du beide seiten betreust..
    => keine ahnung, an der funktion kann man nichts falsch machen