
Ö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' | |
Definiert in Zeile 36 der Datei RSSReader.class.php.
| 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 }
| 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'
)
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.
1.5.8