
Jak vytvořit RSS v PHP
Profik123, 2.3.2008 14:50 | Přečtěno: 8657x | Rubrika: Články | Kategorie: Obecně Tento článek o RSS jsem se rozhodl napsat i přesto, že na českém internetu existuje množství takových, které se podobným tématem zabývají. Vzhledem k tomu, že jsem si na používání RSS celkem zvykl a používám každý den, rozčiluje mě, že na většině webů jsou RSS nevalidní, případně podporují pouze starou verzi, tudíž se články ve čtečce zobrazují špatně. V tomto článku se podíváme, co RSS vůbec je, jak přibližně funguje a jak něco takového vytvořit v PHP. Na konci je k dispozici zdrojový kód RSS, který funguje konkrétně tady na HackPages.cz.
RSS (Really Simple Syndication) je technologie používaná k odběru novinek z webu. Je založena na jazyce XML a vyskytuje se v několika verzích:
RSS 0.91 – Nejstarší forma specifikace, vyvinuta firmou Netscape. Bohužel se stále ještě používá, ale pro naše účely má z mého pohledu zásadní nedostatky. Poskytuje pouze název příspěvku, URL a krátký popis. Nedokáže poskytnout autora a hlavně datum. Datum je z mého pohledu nejdůležitější, protože potom můžeme články řadit podle data a vybírat nejnovější. Chceme zabránit tomu, aby se příspěvky ve čtečce zobrazovaly náhodně.
RSS 2.0 – Kromě dalších mnoha vylepšení přináší možnost již zmíněného poskytování autora a data. Doporučuji používat tuto verzi.
O ostatních verzích se to nebudu zbytečně rozepisovat. Vše se dá najít na Google. V praxi se stejně ve většině případů používají jen tyto dvě předchozí. Dále už se budu zabývat pouze verzí 2.0.
Validita
Na začátku jsem zmiňoval, že mnoho RSS kanálů je nevalidních. Konkrétně mohu ukázat na webech v oboru:
Soom.cz
Security-portal.cz
Snažte se proto dělat své RSS co nejvíce validní, aby s nimi neměla žádná čtečka problém.
XML syntaxe
Každé RSS musí začínat tagy <rss> a <channel>.
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
Povinné elementy tagu <channel>
<title> – název RSS kanálu
<link> – URL webu, ke kterému RSS kanál patří
<description> – popis kanálu
<title>HackPages</title>
<link>http://www.hackpages.cz/</link>
<description>All about the computer security</description>
Doplňující elementy tagu <channel>
<language> – specifikace jazyka používaného v příslušném kanálu (pro češtinu = cs)
<webmaster> – adresa na správce RSS kanálu
<pubDate> – datum zveřejnění kanálu
<lastBuildDate> – datum, kdy byl RSS kanál naposledy změněn
<image> – slouží k přidání obrázku k RSS kanálu, element <image> musí mít ještě další parametry
Toto nejsou všechny možné elementy tagu <channel>. Vybral jsem jen ty z mého pohledu nejdůležitější. Celou specifikaci najdete na RSS 2.0
<language>cs</language>
<webMaster>profik123@gmail.com (Profik123)</webMaster>
<pubDate>Sun, 17 Feb 2008 22:47:45 +0100</pubDate>
<lastBuildDate>Sun, 17 Feb 2008 22:47:45 +0100</lastBuildDate>
<image>
<title>HackPages</title>
<url>http://www.hackpages.cz/favicon.png</url>
<link>http://www.hackpages.cz/</link>
</image>
Tím bychom měli vytvořenou hlavičku RSS kanálu a přejdeme k jednotlivým položkám. Ty jsou uvozeny elementem <item>.
Povinné elementy tagu <item>
<title> – obsahuje nadpis článku
<link> – URL plného znění článku
<description> – popis článku (většinou úryvek)
Doplňující elementy tagu <item>
<author> – kontakt na autora
<guid> – jednoznačný identifikátor článku, slouží k tomu, aby čtečka znovu nenačítala článek, který již byl jednou načten. Většinou se vkládá URL článku.
<pubDate> – datum zveřejnění článku. Podle mého názoru NEJDŮLEŽITĚJŠÍ položka
Zase jsem nevypsal všechny. Zbytek najdete na RSS 2.0
<item>
<title>Jak vytvořit RSS v PHP</title>
<description>Tento článek o RSS jsem se rozhodl napsat i přesto...</description>
<author>profik123@gmail.com (Profik123)</author>
<link>http://www.hackpages.cz/index.php?page=clanek&clanek=xxx</link>
<guid>http://www.hackpages.cz/index.php?page=clanek&clanek=xxx</guid>
<pubDate>Sun, 17 Feb 2008 22:47:45 +0100</pubDate>
</item>
Ukázkový soubor ve formátu RSS 2.0 najdete zde
Jak na to v PHP
Vzhledem k tomu, že teď známe, jak má výsledný XML dokument vypadat, není ho problém vygenerovat pomocí PHP rovnou z databáze. Připravil jsem pro vás hotový skript, který tohle obstará. Neříkám, že je řešený nejlépe, ale tady na HackPages.cz funguje spolehlivě. Očekávejte, že si skript budete muset opravit k obrazu svému, ale jako inspirace to snad bude stačit. Kdyby někdo měl návrh, jak ho zlepšit, ať se určitě ozve.
Skript najdete zde
Další zajímavé články
http://cs.wikipedia.org/wiki/RSS
http://www.rssboard.org/rss-specification
http://blog.xalda.eu/24-manualni-tvorba-rss-aneb-jak-vytvorit-rss-zdroj.html
http://interval.cz/clanky/rss-2-0/
http://www.root.cz/clanky/vse-podstatne-o-rss/
Podělte se s ostaními:
Podobné články:
Komentáře

cfbpgkxtx
23.1.2011 06:52
aOnMXW <a href=“http://veyedphhxsxu.com/”>veyedphhxsxu</a>, [url=http://iigfpjpanixm.com/]iigfpjpanixm[/url], [link=http://ubrcpzjupcxd.com/]ubrcpzjupcxd[/link], http://vzdhibncstde.com/

sbvkbu
27.1.2011 16:15
U0gmTv <a href=“http://aediuxskiyws.com/”>aediuxskiyws</a>, [url=http://mkhaurvcqvta.com/]mkhaurvcqvta[/url], [link=http://azswgequypyp.com/]azswgequypyp[/link], http://hgkcvkxcvhms.com/

ymmkfim
31.1.2011 15:01
OzNYXP <a href=“http://dudlaphzbmbf.com/”>dudlaphzbmbf</a>, [url=http://pgqowwwegpjc.com/]pgqowwwegpjc[/url], [link=http://aowoddsohhax.com/]aowoddsohhax[/link], http://nfdcwlvfkfhz.com/

chzuhadsbkj
16.2.2011 13:52
2KP1CA <a href=“http://slrkwrwucifr.com/”>slrkwrwucifr</a>, [url=http://ojuhikwmnsnx.com/]ojuhikwmnsnx[/url], [link=http://tomkrhsaxquc.com/]tomkrhsaxquc[/link], http://rsyxraqzppup.com/

sthsubpsu
17.2.2011 07:54
TcOsCP <a href=“http://uyriazvgdgho.com/”>uyriazvgdgho</a>, [url=http://vnycdnksesqv.com/]vnycdnksesqv[/url], [link=http://iyoxedtcmbtx.com/]iyoxedtcmbtx[/link], http://mqtzepejecqj.com/

lpjieb
19.2.2011 14:16
sTjD8m <a href=“http://ieqgswqfmnsk.com/”>ieqgswqfmnsk</a>, [url=http://zljgffvktejg.com/]zljgffvktejg[/url], [link=http://unzhvvdsrnvi.com/]unzhvvdsrnvi[/link], http://azsuzpbzopbu.com/

dtuqiojvgcz
4.3.2011 03:35
3GGecP <a href=“http://yvxusbcgmmno.com/”>yvxusbcgmmno</a>, [url=http://zacynxpqwwqh.com/]zacynxpqwwqh[/url], [link=http://wsjewnswtobo.com/]wsjewnswtobo[/link], http://ullvnmjgkwqp.com/

vgckrbfqcp
6.3.2011 07:59
h8J1mH <a href=“http://tmfokjknfucv.com/”>tmfokjknfucv</a>, [url=http://iysbxfmrcgzc.com/]iysbxfmrcgzc[/url], [link=http://merijpfvauzb.com/]merijpfvauzb[/link], http://vxxfcibyfnul.com/

yammwrpvk
8.3.2011 14:31
Ez3s5R <a href=“http://sxuicxggzglg.com/”>sxuicxggzglg</a>, [url=http://icxdlxalonov.com/]icxdlxalonov[/url], [link=http://iroqdgqlgcis.com/]iroqdgqlgcis[/link], http://htazlyivvbpo.com/

cpoemphlz
10.3.2011 13:46
TYoCw2 <a href=“http://wvetsvgkxmmj.com/”>wvetsvgkxmmj</a>, [url=http://grmyyuiwbnlu.com/]grmyyuiwbnlu[/url], [link=http://fihcorjvbtrv.com/]fihcorjvbtrv[/link], http://eebezvigwome.com/

ybfkaapu
17.3.2011 07:01
Bw6JWT <a href=“http://ulrmydnmzkbm.com/”>ulrmydnmzkbm</a>, [url=http://txrxesgkadll.com/]txrxesgkadll[/url], [link=http://ybvqugntyqwi.com/]ybvqugntyqwi[/link], http://heqfqhkcqqjk.com/

vjeafeiqnsn
29.1.2012 15:28
BWtCQQ <a href=“http://ugwacwhdpqok.com/”>ugwacwhdpqok</a>, [url=http://qjeedqnjffpx.com/]qjeedqnjffpx[/url], [link=http://fgnsmpdpakag.com/]fgnsmpdpakag[/link], http://yonwzjsmbdzp.com/







