Publikováno v sekci PHP v
Na diskusních fórech se tu a tam objeví příspěvek, kdy tazatel neví jak zobrazit cizí RSS kanál na svém webu. Pomocí PHP 5 a funkce simplexml_load_file je to hračka ....
Níže uvedená funkce bude fungovat za předpokladů:
Dostupný RSS kanál
1: /*<em> </em> myRss() <em> </em> Jednoducha funkce na zobrazeni informaci z daneho RSS kanalu <em> </em> @author Roman Janko <admin> <em> @date 08-05-2008 </em> @todo dodelat kesovani vystupu <em> @version 1.0 </em> @param string $url adresa na RSS kanal <em> @param integer $limit pocet zobrazozenych polozek </em> @param mixed $charsetFrom v jakem kodovani rss kanal prebirame, v pripade false se nic nekonvertuje <em> @param mixed $charsetTo do jakeho kodovani rss zobrazime , v pripade false se nic nekonvertuje </em> @return string pozadovany rss vystup nebo informace o chybe <em>/ function myRss($url = '', $limit = 10, $charsetFrom = false, $charsetTo = false) { if (@ $xml = simplexml_load_file($url)) { $counter = 0; $out = ''; foreach ($xml->item as $item) { if ($charsetFrom != false && $charsetTo != false) { $item->title = iconv($charsetFrom, $charsetTo, $item->title); $item->description = iconv($charsetFrom, $charsetTo, $item->description); } if ($counter == $limit) break; $out .= '- <a href="'.$item->link.'">'.$item->title.'</a><br /> 2: '.$item->description.' 3: '; $counter++; } $out .= ' 4: '; } else { $out = 'Požadovanou url nelze načíst ( </em>' . $url . '* )'; } return $out; }Celou funkci voláme prostě
1: echo myRss('<a href="http://www.novinky.cz/rss/kultura">http://www.novinky.cz/rss/kultura</a>', 5, 'utf-8', 'windows-1250');A zde můžeme vidět výsledek. Tato funkce je velmi jednoduchá, jejím jediným cílem je parsnout RSS kanál a připravit ho prohlížeči na výstup. Určitě by se hodilo kešování výstupu, aby se RSS kanál nemusel parsovat při každém refreshi stránky, nějaká kontrola obsahu ( x HTML ) atd. Proto pokud hledáte sofistikovanější nástroj, odkáži Vás na třídu, kterou sám používám LAST RSS. To je pro dnešek vše, mír s Vámi :)