rss feed
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anbieten
array
atom
attribut
beispiel
beschreibung
code
date
eintrag
element
header
helfen
http
klasse nehmen
komplex code
null
realisieren
test
type
url
-
Hallo an alle Pro's hier!
Ich würde gerne einen RSS feed auf meiner website anbieten, aber ich weiss noch nicht so ganz, wie ich das realisieren soll! könnt ihr mir vllt helfen??
Vielen Dank im Vorraus
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Entweder du benutzt den FeedCreator oder du kannst auch eine Klasse nehmen, die ich selbst geschrieben habe, die ist nicht so komplex:
<?php class FeedCreator { /** * Mit der FeedCreator-Klasse können einfach RSS-Feeds erstellt werden. * * @author Cookies <rkrobertk@googlemail.com> * @license cc-by */ public $title = 'namenloser Feed'; public $link = 'http://electronic-help.de'; public $description = 'ein Feed ohne Namen...'; public $language = 'de'; var $_entries = array(); var $_dom = null; var $_channel = null; public function __construct () { //create DOMDocument: $this->_dom = new DOMDocument('1.0'); //create <rss>-Element: $rss = $this->_dom->createElement('rss'); $this->_dom->appendChild($rss); //create xmlns:atom-Attribute: $xmlns_atom = $this->_dom->createAttribute('xmlns:atom'); $rss->appendChild($xmlns_atom); $xmlns_atom_value = $this->_dom->createTextNode('http://www.w3.org/2005/Atom'); $xmlns_atom->appendChild($xmlns_atom_value); //create version-Attribute: $version = $this->_dom->createAttribute('version'); $rss->appendChild($version); $version_value = $this->_dom->createTextNode('2.0'); $version->appendChild($version_value); //create xmlns:georss-Attribute: $xmlns_georss = $this->_dom->createAttribute('xmlns:georss'); $rss->appendChild($xmlns_georss); $xmlns_georss_value = $this->_dom->createTextNode('http://www.georss.org/georss'); $xmlns_georss->appendChild($xmlns_georss_value); //create <channel>-Element: $this->_channel = $this->_dom->createElement('channel'); $rss->appendChild($this->_channel); return true; } public function addEntry ($title, $description, $pubDate, $link) { $key = count($this->_entries); $this->_entries[$key]['title'] = $title; $this->_entries[$key]['description'] = $description; $this->_entries[$key]['pubDate'] = ((is_numeric($pubDate))?date('r', $pubDate):$pubDate); $this->_entries[$key]['link'] = $link; return true; } public function save () { //create <title>-Element: $title = $this->_dom->createElement('title'); $title->appendChild($this->_dom->createTextNode($this->title)); $this->_channel->appendChild($title); //create <link>-Element: $link = $this->_dom->createElement('link'); $link->appendChild($this->_dom->createTextNode($this->link)); $this->_channel->appendChild($link); //create <description>-Element: $description = $this->_dom->createElement('description'); $description->appendChild($this->_dom->createTextNode($this->description)); $this->_channel->appendChild($description); //create <language>-Element: $language = $this->_dom->createElement('language'); $language->appendChild($this->_dom->createTextNode($this->language)); $this->_channel->appendChild($language); //create <item>-Elements: foreach ($this->_entries as $entry) { //create <item>-Element: $item = $this->_dom->createElement('item'); //create <title>-Element: $title = $this->_dom->createElement('title'); $title->appendChild($this->_dom->createTextNode(utf8_encode($entry['title']))); $item->appendChild($title); //create <description>-Element: $description = $this->_dom->createElement('description'); $description->appendChild($this->_dom->createTextNode(utf8_encode($entry['description']))); $item->appendChild($description); //create <pubDate>-Element: $pubDate = $this->_dom->createElement('pubDate'); $pubDate->appendChild($this->_dom->createTextNode(utf8_encode($entry['pubDate']))); $item->appendChild($pubDate); //create <guid>-Element: $guid = $this->_dom->createElement('guid'); $guid->appendChild($this->_dom->createTextNode(utf8_encode($entry['link']))); $item->appendChild($guid); //create <link>-Element: $link = $this->_dom->createElement('link'); $link->appendChild($this->_dom->createTextNode(utf8_encode($entry['link']))); $item->appendChild($link); //append <item>-Element: $this->_channel->appendChild($item); } //save xml: return $this->_dom->saveXML(); } } //###################### Beispiel: ###################### header("Content-Type: application/rss+xml; charset=utf-8"); $feed = new FeedCreator(); $feed->title = 'Feed 1'; //Titel deines Feeds $feed->description = 'ein Feed'; //Beschreibung deines Feeds $feed->link = 'http://electronic-help.de/'; //Link zu deiner Seite $feed->addEntry('test 1', 'der test #1', time(), 'http://www.google.de'); //Eintrag hinzufügen (Titel, Beschreibung, Zeit des Erstellens, Link) $feed->addEntry('test 2', 'der test #2', time(), 'http://www.wikipedia.de'); //Eintrag hinzufügen (Titel, Beschreibung, Zeit des Erstellens, Link) //usw. echo $feed->save(); ?>
LG cookies
Beitrag zuletzt geändert: 15.4.2010 15:51:55 von cookies -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage