Publikováno v sekci PHP ve Čtvrtek 8.5.2008 - 17:10
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ů:
/** * myRss() * * Jednoducha funkce na zobrazeni informaci z daneho RSS kanalu * * @author Roman Janko <admin@rjwebdesign.net> * @date 08-05-2008 * @todo dodelat kesovani vystupu * @version 1.0 * @param string $url adresa na RSS kanal * @param integer $limit pocet zobrazozenych polozek * @param mixed $charsetFrom v jakem kodovani rss kanal prebirame, v pripade false se nic nekonvertuje * @param mixed $charsetTo do jakeho kodovani rss zobrazime , v pripade false se nic nekonvertuje * @return string pozadovany rss vystup nebo informace o chybe */ function myRss($url = '', $limit = 10, $charsetFrom = false, $charsetTo = false) { if (@ $xml = simplexml_load_file($url)) { $counter = 0; $out = '<ul>'; 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 .= '<li><a href="'.$item->link.'">'.$item->title.'</a> <br /> '.$item->description.'</li>'; $counter++; } $out .= '</ul>'; } else { $out = 'Požadovanou url nelze načíst ( <em>' . $url . '</em> )'; } return $out; }
Celou funkci voláme prostě
echo myRss('http://www.novinky.cz/rss/kultura', 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 :)