RSS-syötteet ovat hyvä tapa pysyä ajan tasalla sivustoille päivittyvästä sisällöstä automaattisesti. Ehkä yleisin tapa hyödyntää syötteitä on hakea jokin ilmainen RSS-lukijaohjelma työpöydälle tai käyttää selaimen sisäänrakennettua lukijaa. RSS-syötteet voidaan myös helposti lisätä osaksi omaa verkkosivustoa. Tässä yksinkertainen esimerkki PHP:llä, joka toimii minkä tahansa standardin mukaisen RSS-syötteen kanssa käyttäen ydinelementtejä.
Huomaa että web-palvelimella pitää olla SimpleXML-tuki asennettuna. Voit tarkistaa tämän phpinfo-funktiolla. Tulostetta ei kuitenkaan kannata antaa koko maailman ihmeteltäväksi.
<?php phpinfo(); ?>
Tässä varsinainen syötteen lataaminen ja ladatun sisällön tulostaminen. Kannattaa katsoa syötettä ja koodia rinnakkain, jotta XML-puussa kulkeminen käy paremmin selväksi.
<?php
$doc = simplexml_load_file('http://www.m-brain.com/fi/blog/rss');
if($doc == TRUE){
foreach($doc->channel->item as $child){
print '<h1>'.$child->title.'</h1>';
print strip_tags($child->description);
print '<a href="'.$child->link.'" target="_blank">'.$child->link.'</a>';
}
}
?>
Yllä oleva koodinpätkä lataa määritellystä lähteestä syötteen. Onnistuessaan käydään kaikki item-elementit läpi ja niistä tulostetaan otsikko, sisällön kuvaus (tässä tapauksessa varsinaisesta tekstistä alkuosa) ja linkki. Kuva 1 näyttää miltä koodin tuloste näyttää selaimessa.
Vain harvoin halutaan tulostaa kaikki syötteen item-elementit, joten tulosteiden määrää pitäisi pystyä rajoittamaan. Itse olen mieltynyt tallentamaan koko syötteen etukäteen arrayhyn, jolloin voin tulostaa minkä tahansa elementin missä tahansa. Tässä esimerkin vuoksi yksinkertaisempi lähestymistapa, jossa määrä annetaan kiinteästi ja tulostetaan vain 5 ensimmäistä syötteen item-elementtiä. Counter-muuttujan arvoa kasvatetaan aina yhdellä, kunnes saavutetaan määritelty katto.
<?php
$doc = simplexml_load_file('http://www.m-brain.com/fi/blog/rss');
if($doc == TRUE){
$counter = 0;
foreach($doc->channel->item as $child){
if($counter<5){
print '<h1>'.$child->title.'</h1>';
print strip_tags($child->description);
print '<a href="'.$child->link.'" target="_blank">'.$child->link.'</a>';
}
$counter++;
}
}
?>
Tästä on helppo jatkaa lisäämällä HTML-elementit ja luomalla CSS-tyylitiedosto, jossa voi tehdä väri ja ulkoasumäärityksiä. Syötteissä voidaan ydinelementtejä jatkaa ottamalla käyttöön nimiavaruudet (namespace), joissa määritellään syötteen uniikkeja tageja. Lisäksi syötteen elementteihin voidaan sisällyttää atribuutteja kuvaamaan sisältöä. Näiden käsittely jätetään kuitenkin myöhempään.