Jednoduchá RSS čtečka

/ Blog / PHP / Jednoduchá RSS čtečka

Publikováno v sekci PHP v 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ů:

  • Tam kde ji voláte funguje PHP 5
  • Pokud ji budete volat s argumenty kódování, musíte mit povolenou funkci iconv
  • Dostupný RSS kanál
1: /** * myRss() * * Jednoducha funkce na zobrazeni informaci z daneho RSS kanalu * * @author Roman Janko <admin> * @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 = ''; 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 .= '- ['.$item->title.']('.$item->link.')  
2:  '.$item->description.'
3: '; $counter++; } $out .= '
4: '; } else { $out = 'Požadovanou url nelze načíst ( *' . $url . '* )'; } return $out; }

Celou funkci voláme prostě

1: 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 :)

Kategorie

  • Osobní názory - 1x
  • PHP - 9x
  • MYSQL - 4x
  • CSS - 7x
  • jQuery - 3x
  • Sociální síť - 1x
  • Nette - 5x
  • Tipy & triky - 3x
  • Twitter Bootstrap - 1x
  • Týdenní tipy a novinky - 4x
  • SCSS - 1x
  • GIT - 1x
  • Gulp - 1x

  • Komentáře (2x)

    Dobrý den, potřeboval bych se zeptat, jestli by jste mi nemohl zkopírovat soubor uložený na vaší adrese http://www.rjwebdesign.net/examples/rss/index.php a poíslat mejlem. Nevím jak rozjet vaši RSS čtečku a s tímhle to mám jednodušší. Díky za odpověď.
    #2 reagovat Roman Janko:
    [1] Karel Kaleta

    Jak zkopirovat? Vse podstatne mate v clanku, deklaraci funkce a jeji pouziti. Nic vic v tom neni

    Vložit nový komentář


    • na jiné komentáře odkazujte pomocí odkazu reagovat
    • vaše IP adresa bude zaznamenána
    • používají se gravatary
    • můžeme si tykat
    • HTML tagy vypnuty. PHP kód se také neprovede. Pokud potřebuju přiložit ukázku vašeho kódu, použijete službu pastebin
    • vulgární, rasistické či jinak nepřípustné komentáře budou smazány