Kalle_B: RSS- Feed funktioniert nicht

Hallöle,

habe PHP 5.1.6

Kann im Browser die Seite http://www.faz.net/s/Rub/Tpl~Epartner~SRss_.xml sehen.

Wenn ich sie dann aufrufe:
  $rss = simplexml_load_file( "http://www.faz.net/s/Rub/Tpl~Epartner~SRss_.xml" );
  print "<pre>[".$rss."]</pre>";
  print "<pre>[".var_dump($rss)."]</pre>";

kommt:
[]

bool(false)

[]

Habe es auch schon mit anderen URLs probiert. Wo liegt das Problem?

Gruß, Kalle

  1. bei
      $rss = file ( "http://www.osmer.de/test.xml" );
      var_dump($rss);

    kommt bool(false)

    bei
      $rss = file ( "test.xml" );
      var_dump($rss);

    kommt array(12) { [0]=>  string(56) ...

    Es ist aber exakt dieselbe Datei. Darf ich mit meinem PHP nicht extern zugreifen? Wie kann ich das freischalten?

    sonnigen Gruß, Kalle

    1. n'abend,

      Es ist aber exakt dieselbe Datei. Darf ich mit meinem PHP nicht extern zugreifen? Wie kann ich das freischalten?

      schau mal in deine phpinfo() und schau dort nach ob der flag allow_url_fopen auf On steht. Ist dies nicht der Fall, kannst du die normalen Dateifunktionen nicht für Zugriffe aus externe Ressourcen missbrauchen. (Aus Sicherheitsgründen gehört das übrigens deaktiviert)

      weiterhin schönen abend...

      --
      Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
      sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
      1. danke für deine Antwort.

        schau mal in deine phpinfo() und schau dort nach ob der flag allow_url_fopen auf On steht.

        Steht auf off.

        Aber der ursprüngliche Zugriff mit
          $rss = simplexml_load_file( "http://www.osmer.de/test.xml" );
          var_dump($rss);

        ist ebenso erfolglos. Welcher flag wäre da zuständig?

        Kalle.

        1. n'abend,

          schau mal in deine phpinfo() und schau dort nach ob der flag allow_url_fopen auf On steht.
          Steht auf off.

          na dann haben wir doch den Ursprung deines Problems gefunden. Weil allow_url_fopen nicht aktiviert ist, darfst du mit den file-Funktionen keine externen Ressourcen aufrufen.

          du kannst nun
          (a) deinen Hoster bitten das für dich zu aktivieren. (wie dem Listing der Laufzeiteinstellungen zu entnehmen ist, kannst du das nicht selbst tun)
          (b) schauen ob du CURL nutzen kannst (ebenfalls in der phpinfo nachzuschauen) und dich ggf. einlesen: PHP cURL
          (c) diesen komischen PEAR::HTTPRequest kram nutzen

          weiterhin schönen abend...

          --
          Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
          sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
  2. Hallo,

    ein Hinweis, unabhängig von Deinem konkreten Problem:

    $rss = simplexml_load_file( "http://www.faz.net/s/Rub/Tpl~Epartner~SRss_.xml" );

    Auch wenn es verlockend ist, die Feedformate RSS und Atom einfach wie XML zu behandeln und sich die Daten darauf herauszugrapschen, kann es dennoch zu Fehlern führen. Es gibt mehrere in kleinen und auch teilweise in gravierenden Dingen unterschiedliche Formate, die sich selbst RSS nennen; will man nicht Jahre seines Lebens verschwenden, hat man wenig Chancen, einen allgemeinen und vor allem erfolgreichen Parser für die verschiedenen Feed-Formate zu schreiben. Deswegen sollte man einen speziellen Feedparser verwenden, der einem die gewünschten Datenstrukturen abstrahiert zur Verfügung stellt. Unter PHP bieten sich da Magpie oder SimplePie an.

    Tim