Analysieren Sie RSS- und Atom-Feeds mit PHP

Olorunfemi Akinlua 15 Februar 2024
  1. Verwenden Sie implode() und simplexml_load_string(), um RSS-Feeds in PHP zu parsen
  2. Verwenden Sie simplexml_load_file(), um RSS-Feeds in PHP zu parsen
Analysieren Sie RSS- und Atom-Feeds mit PHP

RSS (Really Simple Syndication) war ein beliebter Feed, der es frühen Internetnutzern ermöglichte, auf Website-Updates in einem gleichzeitigen und konsistent lesbaren Format zuzugreifen, genau wie JSON es für APIs ist. RSS ist heutzutage jedoch selten beliebt, und die letzte stabile Version für das Format war 2009, also vor 13 Jahren.

Wie bei Abrufen und Lesen von JSON in PHP oder Parsen von HTML können wir integrierte Funktionen von PHP verwenden, um RSS-Feeds in PHP abzurufen und zu parsen.

In diesem Artikel besprechen wir die PHP-Bibliothek, die zwei eingebaute Funktionen hat, die uns beim Analysieren von RSS in PHP helfen, und eine eingebaute Funktion, die den gesamten Prozess unterstützt.

Verwenden Sie implode() und simplexml_load_string(), um RSS-Feeds in PHP zu parsen

Die SimpleXML-Bibliothek enthält tonnenweise Funktionen, die mit XML arbeiten können, um sie in Objekte umzuwandeln, die wir mit PHP manipulieren können. Die erste Funktion ist simplexml_load_string(), die uns hilft, RSS-Feeds in PHP zu parsen.

Um zu verstehen, wie der RSS-Feed analysiert wird, verwenden wir diesen RSS-Feed, The Daily by New York Times, und erhalten das Array aller Inhalte, die sich im Feed befinden.

Die Funktion file() liest den RSS-Feed und gibt ein Array mit allen Inhalten zurück, und die Funktion implode() fügt dann alle Elemente des Arrays zu einem String zusammen und gibt einen String zurück.

Dieser Stringwert wird an simplexml_load_string() übergeben, das einen XML-String in ein Objekt interpretiert, das dann mit der Funktion json_encode() codiert und mit der Funktion json_decode() in ein Array decodiert wird, was wir können arbeiten mit.

<?php

$feed = implode(file('https://feeds.simplecast.com/54nAGcIl'));
$xml = simplexml_load_string($feed);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

var_dump($array);
?>

Ausgang:

Verwenden Sie implode und simplexml load string, um RSS-Feeds in PHP zu parsen

Verwenden Sie simplexml_load_file(), um RSS-Feeds in PHP zu parsen

Genau wie simplexml_load_string() interpretiert die Funktion simplexml_load_file() ein XML.

In diesem Fall interpretiert jedoch die XML-Datei und nicht der XML-String. Es gibt auch ein Objekt zurück.

Da beide dieselben Werte zurückgeben, durchlaufen wir in diesem Code den Code, um bestimmte Werte aus Titel, Link, Beschreibung und Veröffentlichungsdatum auszuwählen, die auf das vorherige Code-Snippet angewendet werden können.

Dazu verwenden wir das Tag channel, das ein untergeordnetes Objekt von $xml ist, und dann das item[$i], das ein untergeordnetes Objekt des Tags ist, das uns den Zugriff ermöglicht auf verschiedene Eigenschaften (Objekt) wie Titel, Link etc.

<?php

$url = "https://feeds.simplecast.com/54nAGcIl";

$xml = simplexml_load_file($url);

for ($i = 0; $i < 2; $i++) {

    $title = $xml->channel->item[$i]->title;
    $link = $xml->channel->item[$i]->link;
    $description = $xml->channel->item[$i]->description;
    $pubDate = $xml->channel->item[$i]->pubDate;

    echo "\nThe Title: " . $title . ".\n";
    echo "\nChannel Link: " . $link . ".\n";
    echo "\nChannel Description: " . $description . ".\n";
    echo "\nDate of Publication: " . $pubDate . ".\n";
}
?>

Ausgang:

Verwenden Sie die simplexml-Ladedatei, um RSS-Feeds in PHP zu analysieren

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn