Externes XML-File via SimpleXML laden funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Externes XML-File via SimpleXML laden funktioniert nicht

    Hallo Leute,

    ich möchte mit der SimpleXML Funktion ein externes XML-File laden und verarbeiten:

    PHP-Code:
    $url "http://www.pohlmann-music.de/rss/rss.xml";
    $xml simplexml_load_file($url);
    echo 
    utf8_decode($xml->asXML()); 
    Leider erhalte ich folgende Fehlermeldungen:

    Warning: simplexml_load_file(http://www.pohlmann-music.de/rss/rss.xml) [function.simplexml-load-file]: failed to open stream: Connection refused ...
    Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://www.pohlmann-music.de/rss/rss.xml" ...




    Das Skript läuft auf einem Apache/2.2.6 (Unix) mit PHP Version 5.2.4.
    SimpleXML ist enabled.
    XML Support ist aktiv.
    libxml2 Version 2.6.27.
    allow_url_fopen ist On.

    Ich verwende das selbe Skript auch auf anderen Servern und da funzt es.
    Ich habe die jeweiligen PHPINFO Dateien verglichen und mir ist nichts aufgefallen.

    Welche php.ini Einstellung oder welches fehlende Modul kann das Laden externer XML-Dateien hervorrufen?
    Oder kann das an einer Apache-Einstellung liegen?

    Wäre toll, wenn jemand einen Tipp für mich hätte.

    Viele Grüße,
    Cuze
    Zuletzt geändert von Cuze; 21.11.2007, 10:04.

  • #2
    Das Problem hat sich nach einem Telefonat mit dem Provider gelöst.
    Es hat nicht geklappt, da trotz Einstellung "allow_url_fopen = On" das Laden externer Dateien seitens des Providers verhindert wurde.
    Jede Domain, von der etwas aufgerufen werden soll, muss beim Provider eingetragen sein. Das ist eine Sicherheitsvorkehrung.
    Laut Provider sollte "allow_url_fopen" sowieso aus Sicherheitsgründen generell auf "Off" gestellt sein.

    Das wirft aber eine neue Frage auf:
    Wie kann man externe XML Files mittels SimpleXML einladen, wenn allow_url_fopen = Off? Gibt es da eine andere Vorgehensweise, die trotzdem sicher ist?

    Gruss, Cuze

    Kommentar


    • #3
      Wie kann man externe XML Files mittels SimpleXML einladen, wenn allow_url_fopen = Off? Gibt es da eine andere Vorgehensweise, die trotzdem sicher ist?
      fsockopen() & Co könnten dabei helfen
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Du musst diese externe Datei, wie jahlives schon sagte, lokal verfügbar machen. Anschließend kannst du diese Parsen.

        Kommentar


        • #5
          Guten Abend die Herrschaften. Ich stehe gerade vor dem selben Problem. Ich weiß, der Thread ist alt, dennoch könnte es ja sein, dass mittlerweile wer eine Lösung hat.

          Ich versuche aus PHP einen RSS Feed auszulesen. Das funktioniert von XAMPP aus problemlos.

          Auf dem echten Server meiner Seite klappt es nicht.

          Hier die selbigen Fehlermeldungen wie oben:

          Warning: simplexml_load_file(http://weather.yahooapis.com/forecastrss?p=AUXX0016&u=c) [function.simplexml-load-file]: failed to open stream: Permission denied in /usr/local/www/wwwroot/bmxsquad/bmxsquadlinz/rss_wetter.php on line 94 Warning: Permission deniedI/O warning : failed to load external entity "http://weather.yahooapis.com/forecastrss?p=AUXX0016&u=c" in /usr/local/www/wwwroot/bmxsquad/bmxsquadlinz/rss_wetter.php on line 94

          Und der Quellcode, an dem der Fehler entsteht ist einfach nur der Funktionsaufruf von simplexml_load_file():

          PHP-Code:

          // Yahoooooo Weather
           
          $url 'http://weather.yahooapis.com/forecastrss?p=AUXX0016&u=c'
           
          // Feed laden 

          $xml simplexml_load_file($url); 
          Der Provider hat mir versichert, dass alles in Ordnung ist (Zugriff auf externe URLs möglich!) und ich habe auch mit phpinfo() alles mit XAMPP verglichen, passt soweit.

          Dennoch bekomme ich die Fehlermeldungen! Über hilfreicheTips würde ich mich sehr sehr freuen!

          Lg, Flo

          Kommentar

          Lädt...
          X