HERANGR

... aneb "odizolujte ty trubky"

RSS jednodusˇe a rychle

Dnes jsem se rozhodl přidat na svůj blog RSS export. Při hledáni na netu jsem ale zjistil že není (nenašel jsem) návod kde by bylo osvětleno vše podstatné.

Inu proto jsem se rozhodl posbírat vše potřebné a udělat si svůj jednoduchý exportér. Začneme PHP hlavičkou.

<?php header('content-type: application/xml'); echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; include_once "funkce/dtb.php"; ?>

Na prvním řádku řekneme prohlížeči že posíláme xml soubor, na druhém je nastavení verze xml a kódování a na třetím připojujeme soubor s připojením k databázi. Všimněte si druhého řádku, protože se xml prezentuje jako <?xml musíme buď vypnout php direktivu short_open_tag nebo to vložit do echo, tak jak to vidíte v příkladu. Pokud tak neučiníte bude se zmiňované <?xml brát jako <? kterým začíná PHP a to nechceme.

Po hlavičce následuje rss hlavička.

<rss version="2.0"> <channel> <title> Jméno RSS kanálu </title> <link> Odkaz na zdroj RSS kanálu </link> <description> Popis </description> <language> Nastavení jazyka kanálu (cs-CZ) </language>

A opět, první řádek říká prohlížeči nebo čtečce že se jedná o RSS dokument a nastavuje jeho verzi. Druhý řádek otevírá kanál, takže vše co bude v něm bude někde vidět. A nakonec nasleduje popisovací hlavička RSS kanálu.

Pak následuje generování samotného obsahu, tedy věcí které budou čtenáře zajímat.

<?php $query=mysql_query(" Dotaz kterým získáme, články, příspěvky, atd... "); while($data=mysql_fetch_assoc($query)){ echo "\t\t\t<item> <title> Jméno, bude reprezentovat jeden objekt a bude na něj odkazem </title> <link> Odkaz na objekt </link> <description> Popis objektu, například první odstavec článku, ale bez HTML formátovaní! </description> <pubDate> Datum vložení do dtb ve formátu Thu, 12 Jan 2012 14:41:21 +0100 </pubDate> </item>\n"; } ?>

Mezi tagy <item> a </item> jsou obsaženy jednotlivé objekty exportu. Ostatní tagy je osvětlen uvnitř ukázky. Datum požadovaného formátu získáte php funkcí date() s prvním parametrem „r“.

Na konec jen připomenu že je třeba uvést poslední dva řádky, které uzavřou kanál a skončí RSS výstup.

</channel> </rss>

Možná jsem vám pomohl, možná píši blbosti, ale jedno vím určitě, mě to funguje.