RSS-Feed erstellen
ID | 110 |
---|---|
Link Reference | Not set |
Link Credits | Not set |
Link Technical Documentation | Not set |
PlCodelang | PHP |
PlGroup | XML |
PlItemTitle | RSS-Feed erstellen |
Code | // Beispiel von den der Seite: // http://xml-rss.de/xml-rss-feed-mit-php/xml-rss-feed-mit-php-und-dom-erstellen.htm // Code-Kommentare stammen nicht von der Seite <?php header("Content-type: text/xml"); // XML Element-Object erstellen $xml = new DOMDocument('1.0', 'UTF-8'); $xml->formatOutput = true; $roo = $xml->createElement('rss'); $roo->setAttribute('version', '2.0'); $xml->appendChild($roo); $cha = $xml->createElement('channel'); $roo->appendChild($cha); // Header-Informationen des RSS // Titel $hea = $xml->createElement('title',utf8_encode('Name des RSS Feed')); $cha->appendChild($hea); // Beschreibung $hea = $xml->createElement('description',utf8_encode('Feed Beschreibung')); $cha->appendChild($hea); // Sprache, für einen englischen Feed hier 'en' eintragen $hea = $xml->createElement('language',utf8_encode('de')); $cha->appendChild($hea); // Link zur Seite zum dem der RSS gehört $hea = $xml->createElement('link',htmlentities('http://xml-rss.de')); $cha->appendChild($hea); // Datum des letzten Aufbaus der Feed-Anforderung $hea = $xml->createElement('lastBuildDate',utf8_encode(date("D, j M Y H:i:s ").'GMT')); $cha->appendChild($hea); // Content erstellen $itm = $xml->createElement('item'); $cha->appendChild($itm); $dat = $xml->createElement('title',utf8_encode('Titel der Nachricht')); $itm->appendChild($dat); $dat = $xml->createElement('description',htmlspecialchars('Die Nachricht an sich',ENT_QUOTES,'UTF-8')); $itm->appendChild($dat); $link = "http://page/Link_To_Introduction"; $dat = $xml->createElement('link',htmlentities($link)); $itm->appendChild($dat); $dat = $xml->createElement('pubDate',utf8_encode('Datum der Nachricht')); $itm->appendChild($dat); // Ist der Inhalt auf mehreren Seiten verteilt, wäre hier eine Unterteilung vorzunehmen. I.d.R. ist link=guid... $guid = $link; $guid = "http://page/Link_To_Content"; $dat = $xml->createElement('guid',htmlentities($guid)); $itm->appendChild($dat); // Content fertig // RSS-XML serialisieren als separate Datei oder direkt ausgeben // Mittels der save-Methode kann man eine statische Datei erstellen // So wäre es denkbar, dass diese über einen Cron-Job in bestimmten // Zeitintervallen erstellen wird und damit nicht die Performance // des Servers belastet. Nachteil, der Feed ist evtl. nicht immer auf dem neusten Stand. //$xml->save('dateiname.xml'); // Die XML-Struktur wird mitels eines Strings zurückgegeben. // Vorteil: Immer aktuelle Feeds // Nachteil: Bei jedem Aufruf Neuerstellung des Feed's, bei großen // Datenmengen kann darunter die Performance des Servers leiden. echo $xml->saveXML(); ?> |
Result Example |