Kategorie BLOGU: web

PHP - načítání RSS

Nejnovějším modulem pro můj publikační systém je modul pro import RSS kanálů.

V tomto případě jsem se raději obrátil tak jako při uploadu obrázků na modifikaci osvědčených řešení. Hledal jsem doporučované externí PHP třídy a našel:

  • Last RSS (pouze RSS) a z něho odvozené RSS-okenko (autor kód prošpikoval vlastní reklamou)
  • FeedParser (RSS + ATOM)
  • MagPieRSS (RSS + ATOM - tohle se mi moc líbilo, jen jsem neměl dost času zjišťovat, zda by nakonec nedokázal to, co bez nastavování zvládl následující)
  • SimplePie (RSS + ATOM - vítěz mého odpoledního testování)

Vyzkoušel jsem všechny a nakonec největší počet různorodých kanálů zvládl poslední - SimplePie. Sice i tak nacházím weby, které exportují XML soubor s nimiž si neumí poradit, ale jejich procento je přijatelné. Napsal jsem si funkci, která includuje soubor s parserem a prožene jím soubor, jehož URL tvoří argument této funkce. V modulu článků mi pak stačí pouze tuto funkci včlenit a jako argument načíst ten prvek pole složeného z URL zdrojů, který podle indexu odpovídá příslušnému článku. Parser SimplePie tak nenačítám zbytečně do stránek, kde index odpovídající zobrazené stránce má práznou hodnotu. Ve funkci, která parser volá rovnou využívám CSS tříny ze stylopisu webu. Úpravou funkce pak mohu měnit parametry zobrazení RSS zdroje na všech místech zobrazení najednou.

<?php
function Simplepie($rss) {
if ($rss !="") {
require_once('simplepie/simplepie.inc');
$feed = new SimplePie();
$feed->set_feed_url($rss);
$feed->init();
$feed->handle_content_type();
$pocetodkazu=10;
?>
<div class="header">
<h2>Z webu: <a href="<?php echo $feed->get_permalink(); ?>" rel="nofollow">
<?php echo $feed->get_title(); ?></a></h2>
        <p><?php echo $feed->get_description(); ?></p>
</div>
<?php
        $max = $feed->get_item_quantity($pocetodkazu);
    for ($x = 0; $x < $max; $x++):
        $item = $feed->get_item($x);
?>
<div class="item" style="border-bottom:1px solid #08A8E4;padding-bottom:5px;">
<h4><a href="<?php echo $item->get_permalink(); ?>">
<?php
echo $item->get_title(); ?></a></h4>
       <p>
<?php echo $item->get_description(); ?><br>
            <small>Článek ze dne <?php echo $item->get_date('j.n.Y | G.i');
?>
</small>
      </p>
</div>
<?php
    endfor;
}
}
?>
 
Pridat.eu
ilustrace-timeout_liberec_country2
ilustrace-hrad_1e
ilustrace-cukrovi1
ilustrace-timeout_liberec_country3
ilustrace-hrad_1a
grafika-konkurzy
grafika-katalog-prague-1
grafika-sbirame-recepty8
grafika-NVS1
grafika-opce-seminar_big
logo-mazoretky
logo-golf2000-logo-RGB_medium
logo-icp_09
logo-putovani_logo_rgb
logo-todoriko_250x88
web-webdesign-11
web-webdesign-1
web-webdesign-4
web-webdesign-6
web-webdesign-8
 

Náhodný výběr obrázků

Xconcept © 2010-2013 | CMS: CMS domino