一个完全面向对象的RSS/XML php类
<?php error_reporting(E_ALL); mysql_connect("localhost","root","root") or die (mysql_error()); mysql_select_db("oop") or die (mysql_error()); class RSS { var $XMLdump; var $pagetitle; var $pagelink; var $pegedescription; var $pagelanguage; var $sqlresult; function setHead($setPagetitle, $setPagelink, $setPegedescription, $setPagelanguage){ $this->pagetitle = $setPagetitle; $this->pagelink = $setPagelink; $this->pegedescription = $setPegedescription; $this->pagelanguage = $setPagelanguage; } function getDataFrom($setSQL){ $this->sqlresult = mysql_query($setSQL); } function rssHead(){ $this->XMLdump = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom/\"> <channel> <title>".$this->pagetitle."</title> <link>".$this->pagelink."</link> <description>".$this->pegedescription."</description> <language>".$this->pagelanguage."</language> <lastBuildDate>".date("r", time())."</lastBuildDate>\n"; } function rssItems(){ while($bla = mysql_fetch_assoc($this->sqlresult)){ $this->XMLdump .= " <item>\n"; $this->XMLdump .= " <title>".$bla['title']."</title>\n"; $this->XMLdump .= " <link>http://bestnewssiteever.com/news/".$bla['id']."/</link>\n"; $this->XMLdump .= " <category>".$bla['category']."</category>\n"; $this->XMLdump .= " <pubDate>".date("r",$bla['pubDate'])."</pubDate>\n"; preg_match_all("/^(?:[^.]*\.){3}/", $bla['content'], $trimedContent); $this->XMLdump .= " <description>".$trimedContent[0][0]."..</description>\n"; $this->XMLdump .= " </item>\n"; } } function rssFooter(){ $this->XMLdump .= " </channel> </rss>"; } function writeXML(){ $this->rssHead(); $this->rssItems(); $this->rssFooter(); return $this->XMLdump; } function saveXML($file){ $fp = fopen($file,"w+"); flock($fp,2); fwrite($fp,$this->writeXML()); flock($fp,3); fclose($fp); } } $Bar = new RSS(); $Bar->getDataFrom("SELECT * FROM news ORDER BY pubDate DESC"); $Bar->setHead("TITLE","http://domain.de","DESCRIPTION","en-EN"); $Bar->saveXML("blub.xml"); ?>