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:
<!-- ?limit=8 // ile wyświetlić linków &limit_zn=30 // ile znaków w 1 linku &u=https://webowiec.net/blog/feed/ // adres URL do kanału RSS //--> <script type="text/javascript" src="/rss/php_js.php?limit=8&limit_zn=30&u=https://webowiec.net/blog/feed/"></script>
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:
// $_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; }
Następnie doczepiamy funkcję przetwarzającą pobrane żródło RSS na tablicę 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; }
Na koniec uzupełniamy skrypt poleceniami wyświetlającymi linki w postaci kodu JavaScript:
$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("<ul class=RSSlink>");'."\n"; if (!empty($rssfeed)) foreach ($rssfeed as $v) { if ($i>=$ile_url) break; $i++; if ($limit_zn>0) $t = substr($v[title], 0, $limit_zn).'...'; else $t = $v[title]; echo 'document.write("<li><a target=\\"_blank\\" rel=\\"nofollow\\" href=\\"'.$v[link].'\\" title=\\"'.$v[title].'\\">'.$t.'</a></lu>");'."\n"; } echo 'document.write("</ul>");'."\n";
Zamykamy skrypt PHP, zapisujemy w folderze RSS, następnie ustawiamy chmod 0777 na folder RSS.
To wszystko! 😉