[php] wyświetlanie RSS na stronie internetowej

Podziel się:   Facebook   Google+   Twitter   GG   E-mail  

Prosty i funkcjonalny skrypt PHP wyświetlający kanał RSS dowolnej strony internetowej.

Dodatkowo kod JavaScript do wyświetlania RSS na stronach z systemami CMS (PHPfusion, Joomla), blogami, forami dyskusyjnymi, itp.

 
INSTALACJA SKRYPTU NA SERWERZE:
1. Rozpakuj skrypt i przenieść folder RSS do głównego katalogu na FTP.
2. Nadaj prawa dostępu (chmod) 777 na folder RSS.
3. Na stronie internetowej umieść kod:
[html]


[/html]
4. Stylizacja CSS: linki umieszczone są jako lista <ul class=”RSSlink”> z poszczególnymi pozycjami/linkami jako <li>. Zobacz: jak używać RSS

Poniżej szczegółowe HOW-TO wraz z komentarzami.

W pierwszej kolejności ustalamy i filtrujemy zmienne przekazywane do skryptu PHP:
[php]
// $_GET[u] – adres URL do kanału RSS
if (empty($_GET[u])) die(‘wprowadz adres rss!’);
$_GET[u] = urldecode($_GET[u]);
$url_p = @parse_url($_GET[u]);
if (empty($url_p[host])) die(‘bledny adres RSS!’);

// $_GET[limit] – limit wyświetlanych pozycji/linków RSS
$ile_url = (int)preg_replace(‘/^0-9/i’,”,$_GET[limit]);
if (! ($ile_url>0 & $ile_url<=10)) $ile_url = 10; // $_GET[limit_zn] - limit znaków w linku $limit_zn = (int)preg_replace('/^0-9/i','',$_GET[limit_zn]); if (! ($limit_zn>0 & $limit_zn<=200)) $limit_zn = 0; [/php] W kolejnej części musimy zapewnić funkcjonalność skryptu jako JavaScript: [php] // wyświetlanie skryptu php jako javascript header("Content-type: text/javascript; charset=UTF-8"); [/php] Teraz pora na funkcję pobierającą o zapisującą kanał RSS lokalnie w folderze RSS: [php] // pobierz i zapisz źródło RSS function get_zrodlo($url){ $url_md5 = md5($url); if ( is_file($url_md5.'.tmp') ) { if ( (time()-filemtime($url_md5.'.tmp'))>60*60 ) {
unlink($url_md5.’.tmp’);
get_zrodlo($url);
} else {
$r = file_get_contents($url);
}
} else {
$r = file_get_contents($url);
file_put_contents($url_md5.’.tmp’, $r);
}

return $r;
}
[/php]

Następnie doczepiamy funkcję przetwarzającą pobrane żródło RSS na tablicę PHP:
[php]
// parser RSS
function rss_to_array($tag, $array, $url) {
$doc = new DOMdocument();
// $doc->load($url);
$doc->loadXML(get_zrodlo($url));
$rss_array = array();
$items = array();
foreach($doc->getElementsByTagName($tag) AS $node) {
foreach($array AS $key => $value) {
$items[$value] = $node->getElementsByTagName($value)->item(0)->nodeValue;
}
array_push($rss_array, $items);
}
return $rss_array;
}
[/php]

Na koniec uzupełniamy skrypt poleceniami wyświetlającymi linki w postaci kodu JavaScript:
[php]
$rss_tags = array(
‘title’,
‘link’,
‘description’,
);
$rss_item_tag = ‘item’;
$rss_url = $_GET[u];

$rssfeed = rss_to_array($rss_item_tag,$rss_tags,$rss_url);

$i=0;
echo ‘document.write(“

“);’.”\n”;
[/php]

Zamykamy skrypt PHP, zapisujemy w folderze RSS, następnie ustawiamy chmod 0777 na folder RSS.
To wszystko! 😉