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.



Doporučuji
Pro své weby používám *Webhosting C4: 20 GB prostoru, PHP, MySQL, e-maily, subdomény za 1200 Kč (zdarma 2 GB navíc každý rok). Více WebhostingC4.cz.
Potřebujete poradit?


Vyhledávání


Poradna

Pokud si nevíte rady, chcete kontakt na spolehlivého tvůrce webu, či vás zajímá cizí názor, ozvěte se.

Reklama