Weboldalunkon egyszerűen jelenithetünk meg más oldalatól kapott rss anyagot. Az alábbi snippet müködéséhez szükségünk lesz cURL,és simplexml támogatásra a tárhelyünkön, de ezek szinte mindenhol alapból elérhetőek.
Az rss csatornák xml segítségével adják át az adatokat. Tehát amikor meg akarunk nyitni egy rss csatornát, például ezen blog-ét akkor egy xml-t fogunk kapni. A csatorna megnyitásához használhatnánk a file_get_contents függvényt is, de ott az időtullépést nem tudjuk kellően lekezelni ezért én cURL-t használok:
$url = "http://blog.greg-dev.com/feed/";
$options = array(
CURLOPT_URL => $url,#url megadasa
CURLOPT_RETURNTRANSFER => 1,#nem akarunk kozvetlen output-ot
CURLOPT_CONNECTTIMEOUT => 2 ,# 2 masodperc-es varakozas utan megszakitjuk a kerest
CURLOPT_MAXREDIRS => 0,#maximum 0 atiranyitasig kovesse az atiranyitasokat
CURLOPT_REFERER => "http://www.google.hu" #beallitjuk a referert
);
$ch = curl_init();
curl_setopt_array($ch, $options);
#megcsinaljuk a http kerest
$result = curl_exec($ch);
#lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat.
curl_close($ch);
A fenti kód lefutása után a $result változóban lesz a nekünk kellő xml adatállomány. A kapott adatot ezután valmilyen használható formára kellene alakítanunk és ítt veszzük igénybe aphp simplexml bővítményét ami az átadot xml-ből egy objektumot képez nekünk:
$xml = simplexml_load_string($result);
$output = '<ul>';
$limit = 10;
$i = 0;
foreach($xml->channel->item as $item){
$output .= '<li><a href="'.$item->link.'" rel="nofollow" target="_blank">'.$item->title.'</a>';
$output .= '<br /><span class="description">'.$item->description.'</span>';
$output .= '</li>';
$i++;
if($limit != 0 and $i == $limit)break;
}
$output .= '</ul>';
Mivel a kapott adat lehet hogy tul hosszú ezért beállíthatunk egy limitet,melynek elérésekor a ciklus véget ér. Az xml tag-jai pedig az objectumon keresztül elérhetőek és tetszőleges kimeneti formába rendezhetőek.