Neobsahuje názory Henryka Laholy

RSS filtr - zdrojový kód

V intencích názvu této rubriky nabízím zdrojový kód pro filtrování RSS kanálů.

Zdrojový kód velejednoduchého RSS filtru je následující:

<?php

$rsslist
='./rsslist.txt'//cesta k seznamu zakazanych slov

//callback filtr
function cb($a){
  global 
$list;
  
$t=$a[1];
  foreach(
$list as $kill){
    
$preg='/'.preg_quote($kill,'/').'/is';
    if (
preg_match($preg,$t)) return '';
  }
  return 
$a[0];
}

//ziskani URL z parametru
$url='';
if (isset(
$_GET['url'])) $url='http://'.$_GET['url'];
if (!
$url) {
  die(
'Chyba - neni zadan parametr URL');
}

//nacteni seznamu
if (file_exists($rsslist)) {
  
$list=file($rsslist);
} else die(
'no rsslist');

//prectu RSS
$text=file_get_contents($url);

//filtr - hleda jednotlive ITEM 
//a kazdy profiltruje callback funkci
$text=preg_replace_callback('/<item>(.*?)</item>/is','cb',$text);

//a vypisu to
header('Content-Type: text/xml');
echo (
$text);
?>

Použití je jednoduché – nahrajete tento skript na svůj server a do stejného adresáře nahrajete soubor, nazvaný "rsslist.txt". To je obyčejný textový soubor, kde jsou napsány řetězce, které chcete odfiltrovat z RSS kanálu, vždy jeden řetězec na jednom řádku.

Použití je prosté – do své čtečky místo původního odkazu na RSS (např. http://www.server.cz/rss.xml) napíšete adresu, kam jste nahráli výše uvedený skript (tedy např. http://www.maly.cz/rssfiltr.php) s parametrem URL nastaveným na původní odkaz (bez HTTP), takže např. http://www.maly.cz/rssfiltr.php?url=www.server.cz/rss.xml

Vaše čtečka bude daný RSS kanál načítat přes tento filtr. Filtr funguje tak, že si načte seznam "zakázaných řetězců", pak přečte RSS kanál a projede všechny ITEM elementy. Pokud v některém najde nějaký zakázaný řetězec, tak jej z výsledného kódu vypustí.

Skript je velmi jednoduchý, nejsou v něm ošetřeny chybové stavy při načítání ze vzdáleného serveru, necachuje výsledky a není nijak optimalizovaný (je to pouze několik tisíc řádků kvalitního objektového kódu).

Enjoy

PS: Jedná se o skript, který používám na localhostu od roku 2003 a publikoval jsem ho bez úprav, čistě jako "quick and dirty" řešení. Děkuji DGX za připomínky, které jsem zapracoval, i když budu rád, pokud mi je příště napíše rovnou a nebudu je z něj muset páčit. Děkuji

Dne 18.03.2007

Twittni

Přidej do: Přidat na Conota Linkuj si ! asdf.sk StumbleUpon Toolbar Stumble It!

Komentáře

[1] (rony [openID] - WWW) 18.03.2007, 21:46:29 [X] [D]
nasadené. blogportál bez releaseinfo. síce tam kdesi vnútri stále je a tapetuje ale aspoň to neuvidím...

[2] (Mirun - Mail - WWW) 20.03.2007, 13:12:22 [X] [D]
Sakra, celá polovina chybových hlášení je v angličtině! Nemohl bys to někde nechat profesionálně přeložit? :))

[3] (Lawrence - Mail - WWW) 03.07.2007, 05:07:20 [X] [D]
http://www.handyshop.txq.de
http://www.handy-shop.txq.de
http://www.vertrag.txq.de
http://www.handys-shop.txq.de
http://www.guenstige-handys.txq.de
http://www.handy-vertrag.txq.de
http://www.handys-mobile.txq.de
http://www.handytarife.txq.de
http://www.billig-handyvertrag.txq.de
http://www.lastminute.s3p.de
http://www.very-lastminute.s3p.de
http://www.pauschalreisen.s3p.de
http://www.familienurlaub.s3p.de
http://www.guenstige-fluege.s3p.de
http://www.reisen-mallorca.s3p.de
http://www.hotels-weltweit.s3p.de
http://www.fluege-billiger.s3p.de