Ponieważ czasem trzeba wyświetlić na stronie linki z oddalonego RSS-a napisałem do tego skrypt w PHP. Są podobne rzeczy w Sieci, ale nieco archaiczne i obciążające serwer. Starałem się to zminimalizować w moim skrypcie. Wymaga PHP > 5.
<?php
//header("Content-Type: text/html; charset=iso-8859-2");
//RSSerPHP
//Autor: Saletra
/* Zmienne, kolejno: czas odświeżania (w minutach - należy zmieniać wyłącznie liczbę), ilość pobieranych elementów, plik cache, adres XML-a */
$czas = '-60 minutes';
$ileRss = 10;
//Folder dla pliku cache musi mieć CHMOD 777.
$file = "rss/cache.htm";
$plikRss = 'http://www.forum.tweaks.pl/rss/forums/1-forum-komputerowe/';
// Sprawdza czy plik trzeba odswiezyc, jeśli nie, wyświetla dane z cache
if(is_file($file) && (date('d-m-Y H:i:s', filemtime($file))) >= date('d-m-Y H:i:s', strtotime($czas))){
echo file_get_contents($file);
// Buduje plik cache
} else {
$doc = new DOMDocument();
$doc->load($plikRss);
$i=0;
if(is_file($file)){
$wyczysc = file_put_contents($file, '');
}
$fp = fopen($file, "w+");
foreach ($doc->getElementsByTagName('item') as $node) {
if($i>=$ileRss){
break;
}
$i++;
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
);
/* Konwertuje z UTF-8 na ISO-8859-2, można włączyć jeśli są problemy z polskimi znakami. Wymagane iconv na serwerze
$itemRSS['title'] = iconv('UTF-8', 'ISO-8859-2', $itemRSS['title']); */
$link = "<a href='".$itemRSS['link']."'>".$itemRSS['title']."...</a> ";
echo $link;
fwrite($fp, $link);
}
fclose($fp);
}
?>








