J2ME, Android. Aplikacje dla urządzeń mobilnych.
ASP.NET  DOKUMENTACJA  FLASH  J2EE SERVLET JSP  J2ME MOBILE  JAVASCRIPT  OPROGRAMOWANIE  PHP  SERWER  SQL  TRENDY  WYSZUKIWARKI  XML 

RSS - pokaż co masz najlepszego

W celu udostępnienia innym witrynom nagłówków artykułów z naszego serwisu, możemy zastosować prosty mechanizm RSS (Rich Site Summary). Webmasterzy innych witryn zainteresowani informowaniem o najnowszych artykułach z serwisu publikującego RSS, po przekonwertowaniu pliku kanału RSS, mogą umieścić na swoich stronach bezpośrednie odnośniki do konkretnych artykułów na ich stronie domowej.

RSS - pokaż co masz najlepszego

 
 spis treści:
RSS - pokaż co masz najlepszego
1. RSS - pokaż co masz najlepszego
Najlepszym przykładem na wykorzystanie RSS niech będzie ramka po prawej stronie gdzie można odnaleźć najnowsze artykuły z DevShed.com, oraz plik RSS z najnowszymi artykułami z WebDeveloper.pl: http://webdeveloper.pl/rdf/webdeveloper.rss.

RSS jak każdy inny plik XML zbudowany jest hierarchicznie z wykorzystaniem kilku standardowych znaczników.
Oto przykład pliku RSS:
 <?xml version="1.0" encoding="iso-8859-2"?> <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"> <rss version="0.91"> <channel> <title>WebDeveloper.pl</title> <link>http://webdeveloper.pl</link> <description>WebDeveloper.pl - Dynamiczne Strony WWW</description> <language>pl</language> <item> <title>Klasy i PHP</title> <link>http://webdeveloper.pl/html/news/2001/06/15/220.html</link> <description>Klasy to nic innego jak zbiór zmiennych i funkcji, które na nich operują. Klasy pozwalają na zdefiniowanie i opisanie obiektów, które istnieją i funkcjonują w realnym świecie. Obiekt lub egzemplarz klasy "żyje" jako struktura pochodna danej klasy. </description> </item> <item> <title>Przechowywanie danych binarnych w bazie danych MySqltitle> <link>http://webdeveloper.pl/html/news/2001/06/14/213.html</link> <description>Dość często spotykam się z problemem przechowywania plików binarnych (np. obrazków) w sposób dający łatwo nimi zarządzać, wyszukiwać i udostępniać. Jednym z rozwiązań tego problemu może być przechowywanie plików w bazie danych korzystając z pola typu BLOB. Jakiś czas temu na stronach WebDeveloper.pl pojawił się tekst opisujacy podobny problem, lecz nie poruszał tematu zbyt dogłębnie. Mam nadzieję, że ten artykuł wyjaśni kilka niejasności. </description> </item> </channel> </rss> 
Struktura RSS

Plik RSS rozpoczyna się od informacji, iż jest to dokument XML:
 <?xml version="1.0"? encoding="ISO_8859-2"> 
Następnie zawiera deklarację typu dokumentu oraz arkusza DTD:
 <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" http://my.netscape.com/publish/formats/rss-0.91.dtd"> 
Teraz właściwe dane dotyczące naszego kanału umieszczamy w znacznikach <channel>....</channel>:

<title>...</title> - tytuł kanału, serwisu
<description>...</description> - charakterystyka serwisu
<link>...</link> - link do serwisu
<language>...</language> - określenie wersji językowej
<copyright>...</copyright> - prawa autorskie
<pubDate>...</pubDate> - data wygenerowania pliku RSS


Specyfikacja RSS przewiduje również użycie znacznika textinput, który pozwala umieścić w kanale formularz umożliwiający przesyłanie zapytań do strony wystawiającej RSS oraz znacznik image zawierający informację o logo witryny.

Wreszcie najważniejsza rzecz dla nas czyli treść. Każda wystawiana informacja zawiera się między znacznikami <item>...</item>. W pliku kanału może znajdować się maksymalnie 15 pozycji, każda składająca się z:

<title>...</title> - tytuł artykułu
<link>...</link> - bezpośredni link do artykułu na stronie domowej kanału
<description>...</description> - krótkie wprowadzenie do artykułu

Generowanie i parsowanie plików RSS

Do generowania i parsowania plików RSS polecam pakiet phpChannel (dostepny w dziale Download).
Dokładny opis jak generować własny plik RSS na podstwie zawartości bazy danych oraz parsować plik ściągnięty z innej witryny znajduje się w pliku INSTALL, tu przedstawię krótki skrypt, pozwalający na szybkie wstawienie zawartości zdalnego kanału do własnej strony.

Skrypt ściągający plik RSS co pewnien czas (tutaj co 3600 sek), przetwarzający go na listę z odnośnikami i zapisujący wynikowy kod (HTML) jako plik używany do dołączania do własnej strony (np. poprzez include("/tmp/rss.inc"))
 <? // co wstawiamy przed linkiem $link_prefix	=	"<li><font size=-2>"; // co wstawimy za linkiem $link_postfix	=	"<br>\n"; // plik buforujący, w którym przechowujemy wynikowy kod kanału, // plik MUSI mieć prawo do zapisu dla procesu generującego go (serwer www) $cache_file	=	"/tmp/rss.inc"; // co jaki czas pobieramy plik RSS (w sek) $cache_time	=	3600; // ilość pozycji w kanale $max_items	=	10; // artykuł otwiera się w nowym oknie $target =	"_blank"; // lokalizacja pliku RSS $backend	=	"http://webdeveloper.pl/rdf/webdeveloper.rss"; $items =	0; $time =	split(" ", microtime()); srand((double)microtime()*1000000); $cache_time_rnd	=	300 - rand(0, 600); if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) { $fpread = @fopen($backend, 'r'); if(!$fpread) { echo "nie mogę połaczyć się z witryna<br>\n"; exit; } else { $fpwrite = fopen($cache_file, 'w'); if(!$fpwrite) { echo "nie mogę zapisać pliku buforujacego<br>\n"; exit; } else { while(! feof($fpread) ) { $buffer = ltrim(Chop(fgets($fpread, 256))); if (($buffer == "<item>") && ($items < $max_items)) { $title = ltrim(Chop(fgets($fpread, 256))); $link = ltrim(Chop(fgets($fpread, 256))); $description = ltrim(Chop(fgets($fpread, 256))); $title = ereg_replace( "<title>", "", $title ); $title = ereg_replace( "</title>", "", $title ); $link = ereg_replace( "<link>", "", $link ); $link = ereg_replace( "</link>", "", $link ); fputs($fpwrite, "$link_prefix<A HREF=\"$link\" TARGET=\"$target\">$title</A>$link_postfix"); $items++; } } } fclose($fpread); } fclose($fpwrite); } if (file_exists($cache_file)) { include($cache_file); } ?> 
strona 1      Autor: hm
Polska - Atrakcje turystyczne: Ogrody Jardin des Tuileries na weekend
Zobacz również:
Kurs języka XML   Instalacja serwera baz danych MySql 3.23.x w systemie RH Linux.   Enterprise Java Beans (EJB) - część 1   Wszystko, co webmaster musi wiedzieć o wyszukiwarkach (2)   Kurs JavaScript (4)   Konfiguracja inaczej   Java 2 Micro Edition (1)  

Masz problem ze swoją komórką? Zapytaj, przeczytaj opinie o telefonie:
Sony Ericsson K508   Sony Ericsson W550i   Motorola C202   Emporia LIFE plus   Nokia 6220 classic   Sagem MY C-6   Haier M2000   i-mate Ultimate 9502   Motorola EM25   MOTOROLA RIZR Z6  



(C) 2000-2010 webdeveloper.pl  |  Napisz do nas