RSSReader Klassenreferenz

Klassendiagramm für RSSReader:

Inheritance graph
base refererrect $classDynamic.html 5,7 160,345

Aufstellung aller Elemente

Öffentliche Methoden

 execute ()
 create ()
 parse ($feed)

Öffentliche Attribute

 $parameters
 $description = 'Reads a RSS-Feed and displays its content as a html list'
 $url = 'http://www.heise.de/newsticker/heise.rdf'


Ausführliche Beschreibung

Autor:
Jan Dankert

Definiert in Zeile 36 der Datei RSSReader.class.php.


Dokumentation der Elementfunktionen

RSSReader::create (  ) 

Definiert in Zeile 78 der Datei RSSReader.class.php.

Benutzt Dynamic::output() und parse().

Wird benutzt von execute().

00079      {
00080           $rss = $this->parse( implode('',file($this->url)) );
00081           $out = array();
00082           
00083           $this->output('<ul>');
00084 
00085           // Schleife ueber alle Inhalte des RSS-Feeds
00086           foreach( $rss['items'] as $item )
00087           {
00088                $this->output('<li>');
00089                $this->output('<a href="'.$item['link'].'">'.$item['title'].'</a><br/>'.$item['description']);
00090                $this->output('</li>');
00091           }
00092 
00093           $this->output('</ul>');
00094      }

RSSReader::execute (  ) 

Erneute Implementation von Dynamic.

Definiert in Zeile 56 der Datei RSSReader.class.php.

Benutzt create(), Dynamic::getOutput(), Dynamic::getSessionVar(), Dynamic::output() und Dynamic::setSessionVar().

00057      {
00058           // Sessionvariable mit CRC verschluesseln, falls es mehrere RSS-Feeds im Projekt gibt
00059           $sessVar = 'RSSReader_'.crc32($this->url);
00060           $cache = $this->getSessionVar( $sessVar );
00061           
00062           if   ( !empty($cache) )
00063           {
00064                // Wenn Cache vorhanden, dann diesen ausgeben
00065                $this->output( $cache );
00066           }
00067           else
00068           {
00069                // Wenn Cache leer, dann RSS erzeugen und in Session speichern
00070                $this->create();
00071                $this->setSessionVar( $sessVar,$this->getOutput() );
00072           } 
00073      }

RSSReader::parse ( feed  ) 

Definiert in Zeile 98 der Datei RSSReader.class.php.

Benutzt $description.

Wird benutzt von create().

00099      {
00100           // Parses the RSS feed into the array
00101           $arr = array();
00102           // Determine encoding
00103           preg_match('/<\?xml version="1\.0" encoding="(.*)"\?>/i', $feed, $sarr);
00104           if   ( !empty($sarr[1]))
00105                $arr["encoding"] = $sarr[1];
00106           // Determine title
00107           preg_match('/<title>(.*)<\/title>/i', $feed, $sarr);
00108           if   ( !empty($sarr[1]))
00109                $arr["title"] = $sarr[1];
00110           // Determine title
00111           preg_match('/<title>(.*)<\/title>/i', $feed, $sarr);
00112           if   ( !empty($sarr[1]))
00113                $arr["title"] = $sarr[1];
00114           // Determine description
00115           preg_match('/<description>(.*)<\/description>/i', $feed, $sarr);
00116           if   ( !empty($sarr[1]))
00117                $arr["description"] = $sarr[1];
00118           // Determine link
00119           preg_match('/<link>(.*)<\/link>/i', $feed, $sarr);
00120           if   ( !empty($sarr[1]))
00121                $arr["link"] = $sarr[1];
00122           // Determine language
00123           preg_match('/<language>(.*)<\/language>/i', $feed, $sarr);
00124           if   ( !empty($sarr[1]))
00125                $arr["language"] = $sarr[1];
00126           // Determine generator
00127           preg_match('/<generator>(.*)<\/generator>/i', $feed, $sarr);
00128           if   ( !empty($sarr[1]))
00129                $arr["generator"] = $sarr[1];
00130           // Strip items
00131           $parts = explode("<item>", $feed);
00132           foreach($parts as $part)
00133           {
00134                $item = substr($part, 0, strpos($part, "</item>"));
00135                if   ( !empty($item) )
00136                     $items[] = $item;
00137           }
00138           // Fill the channel array
00139           $arr["items"] = array();
00140           foreach($items as $item)
00141           {
00142                $i = array();
00143                
00144                // Determine title
00145                preg_match('/<title>(.*)<\/title>/i', $item, $title);
00146                if   ( !empty($title[1]))
00147                     $i['title'] = $title[1];
00148                else
00149                     $i['title'] = '';
00150 
00151                // Determine pubdate
00152                preg_match('/<pubDate>(.*)<\/pubDate>/i', $item, $pubdate);
00153                if   ( !empty($pubdate[1]))
00154                     $i['pubDate'] = strtotime($pubdate[1]);
00155                else
00156                     $i['pubDate'] = '';
00157 
00158                // Determine link
00159                preg_match('/<link>(.*)<\/link>/i', $item, $link);
00160                if   ( !empty($link[1]))
00161                     $i['link'] = $link[1];
00162                else
00163                     $i['link'] = '';
00164 
00165                // Determine description
00166                if(stristr($item, '<![CDATA['))
00167                     preg_match('/<description><!\[CDATA\[(.*)\]\]><\/description>/is', $item, $description);
00168                else
00169                     preg_match('/<description>(.*)<\/description>/is', $item, $description);
00170 
00171                if   ( !empty($description[1]))
00172                     $i['description'] = $description[1];
00173                else
00174                     $i['description'] = '';
00175 
00176                $arr["items"][] = $i;
00177           }
00178           return $arr;
00179      }


Dokumentation der Datenelemente

RSSReader::$description = 'Reads a RSS-Feed and displays its content as a html list'

Bitte immer eine Beschreibung benutzen, dies ist fuer den Web-Developer hilfreich. String

Erneute Implementation von Dynamic.

Definiert in Zeile 50 der Datei RSSReader.class.php.

Wird benutzt von parse().

RSSReader::$parameters

Initialisierung:

 Array(
          'url'=>'URL from which the RSS is fetched'
          )
Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. String

Erneute Implementation von Dynamic.

Definiert in Zeile 42 der Datei RSSReader.class.php.

RSSReader::$url = 'http://www.heise.de/newsticker/heise.rdf'

Definiert in Zeile 52 der Datei RSSReader.class.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

Erzeugt am Thu May 14 00:55:50 2009 für OpenRat von  doxygen 1.5.8