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
Zobacz również:
Kurs PHP (2)   Konfiguracja inaczej   Płynne ściąganie pliku Flasha i jego wyświetlanie   JBuilder 2005 - nowe IDE dla Javy   Kurs Apache (5)   Frameworki czy CMSy - PHP Solutions 5/2004   Visual Basic .NET  

Masz problem ze swoją komórką? Zapytaj, przeczytaj opinie o telefonie:
Samsung SGH M100   Samsung SGH-X820   Ericsson T10s   Acer M 330   Alcatel OT-E230   NEC N21i   Nokia 5310 XpressMusic   Mitsubishi M342i   Philips Ozeo   LG U880  



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