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:
- Rozpakuj skrypt i przenieść folder RSS do głównego katalogu na FTP.
- Nadaj prawa dostępu (chmod) 777 na folder RSS.
- 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>
- 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;
W kolejnej części musimy zapewnić funkcjonalność skryptu jako JavaScript:
// wyświetlanie skryptu php jako javascript
header("Content-type: text/javascript; charset=UTF-8");
Teraz pora na funkcję pobierającą o zapisującą kanał RSS lokalnie w folderze RSS:
// 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! ;)
![[php] wyświetlanie RSS na stronie internetowej](/_next/image?url=https%3A%2F%2Fs3.c.kastin.pl%2Fwebowiec-net%2Fcover_php_wyswietlanie_rss_na_stronie_internetowej_d62fd6f87d.jpg&w=3840&q=75)

![[wordpress] [Contact Form 7] multi level select](/_next/image?url=https%3A%2F%2Fs3.c.kastin.pl%2Fwebowiec-net%2Fcover_wordpress_contact_form_7_multi_level_select_9571c1aa42.jpg&w=3840&q=75)