PHP a XML
S PHP můžete snadno zpracovávat soubory ve formátu xml. Tedy například RSS a validní XHTML. Uvedu zde jednoduchý a velmi praktický příklad čtení RSS (funguje jen za podpory PHP5). Prostřednictvím RSS řada webů zasílá novinky, informace o nových článcích a službách. Pomocí PHP můžete tyto novinky zobrazovat na svém webu a informovat tak čtenáře o novinkách jinde.
RSS čtečka
Zdrojový kód jednoduché RSS čtečky (načítat budu vlastní RSS, které je na adrese http://www.tvorba-webu.cz/tvorba-webu.xml):
<?php
$xml=simplexml_load_file($root."tvorba-webu.xml");
$index = 1;
foreach ($xml->channel->item as $item){
if($index > 3){ break; }
$index++;
$date = $item->pubDate;
$link = $item->link;
$title = $item->title;
$desc =$item->description;
$cat = $item->category;
$date = strtotime($date);
$date = StrFTime("%d. %m. %Y", $date);
$date = str_replace(". 0", ". ", $date);
$num = strlen($date);
if(substr($date, 0, 1) == "0") $date = substr($date, 1, $num);
echo $date." - <a href=\"".$link."\">".$title."</a>";
echo "<br />".$desc."<br /><br />";
}
?>
Nejprve skript načte zdroj. Následně zavádí proměnnou index, díky které určíme, kolik položek se má zobrazit. Příkaz foreach ($xml->channel->item as $item) rozebírá xml zdroj. Nejprve vezme prvek channel, pak jemu přímo podřazené prvky item.
Pak zavádíme podmínku:
if($index > 3){ break; }
$index++;
Hodnota proměnné index se při každém zavolání zvětší o jednu, pokud je větší než 3 cyklus se přeruší. Tím docílíme toho, že skript načte pouze 3 nejnovější položky RSS.
$date = $item->pubDate; $link = $item->link; $title = $item->title; $desc =$item->description; $cat = $item->category;
Tato konstrukce bere obsahy prvků podřazených prvku item a ukládá je jako samostatné proměnné.
Pak už jen trochu zpracujeme datum, aby mělo požadovaný styl. A na konci cyklu vypisujeme jednotlivé položky RSS. Podobným způsobem můžete zpracovávat i jiné soubory XML, vypisovat je, načítat do databáze atd.
