
CZE | ENG
lastRSS.php je jednoduchá, ale výkonná PHP třída na čtení souborů RSS/RDF. Parsuje pomocí regulárních výrazů a vrací asociativní pole s položkami RSS. Ve spolupráci s knihovnou AutoCzech automaticky překódovává češtinu (ISO 8859-2, Windows 1250, UTF-8, ASCII).
Základní vlastnosti:
Adresář, do kterého se ukládají cachovaná data. Nezapomeňte mu nastavit chmod na 777, aby do něj mohl php skript zapisovat. Pokud chcete cachování vypnout, nastavte $cache_dir na "" (prázdný string).
Udává, jak dlouho (v sekundách) se mají data číst z cache, než se znovu stáhnou z původního zdroje. Interval není dobré nastavovat na moc krátkou dobu. I u serveru, kde vychází nové články několikrát za den, není (podle mě) důvod, používat interval pod 20 minut (tedy 1200).
Aneb podpora češtiny. Umožňuje nastavit kódování vaší stránky, do kterého se pak automaticky budou překódovávat všechny zobrazované RSS soubory. Může nabývat hodnot 'iso', 'win', 'utf' nebo 'asc' (bez diakritiky). Automatické překódování lze vypnout nastevním cp na "" (prázdný string). Upozornění: K automatickému překódování je potřeba knihovna AutoCzech.php - ničeho se nebojte a stáhněte si jí. Je zdarma (GPL) a má asi 2 kB. Na spolupráci s lastRSS je přímo stavěná, takže je to velmi jednoduché. (viz následující ukázky kódu a DEMO 3 CZ).
Hlavní funkce, která stáhne a zpracuje zadaný RSS soubor (např. http://www.webdot.cz/backend.php). Pokud se soubor povede načíst, vrací asociativní pole s RSS položkama. V opačném případě vrací False. Strukturu asociativního pole si můžete jednoduše zobrazit pomocí PHP funkce print_r() - viz DEMO 1.
// chceme pouzivat lastRSS
include './lastRSS.php';
// vytvoreni lastRSS objektu
$rss = new lastRSS;
// nastaveni cache
$rss->cache_dir = './cache';
$rss->cache_time = 1200;
// nacteni a zpracovani RSS souboru
if ($rs = $rss->get('nejaky rss soubor')) {
// tady muzeme pristupovat k polozkam $rs
}
else {
die ('Error: Nelze nalez RSS soubor...');
}
// chceme pouzivat lastRSS
include './lastRSS.php';
include './autoczech.php';
// vytvoreni lastRSS objektu
$rss = new lastRSS;
// nastaveni cache
$rss->cache_dir = './cache';
$rss->cache_time = 1200;
// nastaveni code page (iso, win, utf nebo asc)
$rss->cp = 'iso';
// nacteni a zpracovani RSS souboru
if ($rs = $rss->get('nejaky rss soubor')) {
// tady muzeme pristupovat k polozkam $rs
}
else {
die ('Error: Nelze nalez RSS soubor...');
}
Pomocí funkce print_r() ukazuje, jakou strukturu má asociativní pole, které funkce Get() vrací (na ukázku je použit RSS soubor serveru SlashDot.org)
Demo 1 | Zdrojový kód
Ukazuje, jak obdržená data v asociativním poli jednoduše zobrazit na HTML stránce (na ukázku je použit RSS soubor serveru FreshMeat.net)
Demo 2 | Zdrojový kód
Velmi jednoduchý RSS agregátor vytvořený pomocí lastRSS
Demo 3 | Zdrojový kód
Tentýž RSS agregátor, tentokrát s podporou automatického překódování češtiny zobrazuje RSS pocházející z českých serverů. V příkladu jsou schválně zastoupeny servery používající různá kódování češtiny.
Demo 3 CZ | Zdrojový kód
Máte otázky, komentáře nebo nápady?
Vojtěch Semecký, webmaster@webdot.cz
Tento program je svobodný software. Je distribuován pod licencí GNU GPL 2.0 nebo vyšší (dle vaší volby) tak, jak ji publikovala nadace Free Software Foundation. Smíte jej svobodně používat, modifikovat a/nebo redistribuovat, pokud dodržíte podmínky v licenci uvedené. Pro detaily se podívejte na: GNU General Public Licence nebo na český překlad Obecná veřejná licence GNU.
Textový odkaz
http://www.webdot.cz/lastrss/indexcz.html