kostenloser Webspace werbefrei: lima-city


rss feed

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    k********n

    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

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    k********n

    Super!
    Vielen Dank
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!