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

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ż:
PHP i Oracle   Kurs Apache (6)   Instalacja PHP 3.x dla Apache 1.3.x + obsługa MySql (Linux)   Zlot polskich programistów PHP   Co to jest Moblog, MySpace.com?   PHP Solutions (11) 5/2005. PHP w zastosowaniach Enterprise   Największe błędy programistyczne w PHP (1)  

Masz problem ze swoją komórką? Zapytaj, przeczytaj opinie o telefonie:
ViewSonic V35   Research In Motion BlackBerry Curve 8300   LG Cookie Music   Samsung SGH-A400   Samsung C3060R   Siemens C61   O2 XDA Star   Sagem MC 939 WAP   Motorola C113a   Vodafone 360 H1  



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