Erstellen Sie einen RSS-Reader in PHP und Javascript
Donnerstag, 25. Januar, 2007 Da sind wir auf einem Blog (Weblog) und File-Sharing-RSS hat sich zu einem Standard, hier sind ein paar einfache Code-Extrakte zu helfen manipulieren RSS-Feed.
Wir alle wissen, dass die Dateien sind RSS - Ende - einfache Textdatei, die den Standard XML. Daraus folgt, dass manipulieren ist nicht so kompliziert.
Die erste Klasse eingeführt werden, in PHP, können Sie lesen eine Datei von jeder RSS-Adresse, so dass Sie die Ergebnisse und wiederholt von einer Partei.
- (Klasse CRSSREADER
- = false ; insideitem $ var = false;
- = "" ; Var $ tag = "";
- = "" ; var $ title = "";
- = "" ; var $ description = "";
- = "" ; var $ link = "";
- / /
- = "" ; var $ url = "";
- ; var $ xml_parser;
- / /
- $url ) { CRSSREADER Funktion ($ url) (
- = $url ; $ This -> url = $ url;
- )
- / /
- getUrl Funktion () (
- / /
- ; $ Ch = curl_init ();
- ; // set to zero for no timeout $ Timeout = 5; / / auf Null für keine Timeout
- , CURLOPT_URL, $this -> url ) ; curl_setopt ($ ch, CURLOPT_URL, $ this -> url);
- , CURLOPT_RETURNTRANSFER, 1 ) ; curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);
- , CURLOPT_CONNECTTIMEOUT, $timeout ) ; curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout);
- $ch ) ; $ File_contents = curl_exec ($ ch);
- ) ; curl_close ($ ch);
- / /
- $file_contents ) ; return ($ file_contents);
- )
- / /
- $parser , $name , $attrs ) { Funktion startElement ($ Parser, $ name, $ attrs) (
- $this -> insideitem ) { if ($ this -> insideitem) (
- = $name ; $ This -> tag = $ name;
- ( $name == "ITEM" ) { ) Elseif ($ name == "ITEM") (
- = true ; $ This -> insideitem = true;
- )
- )
- / /
- $parser , $name ) { Funktion endElement ($ Parser, $ name) (
- $name == "ITEM" ) { if ($ name == "ITEM") (
- -> link , "url" => $ this -> Link,
- -> description ) ; "Beschreibung" => $ this -> Beschreibung);
- = "" ; $ This -> title = "";
- = "" ; $ This -> description = "";
- = "" ; $ This -> link = "";
- = false ; $ This -> insideitem = false;
- )
- )
- / /
- $parser , $data ) { characterData Funktion ($ Parser, $ data) (
- $this -> insideitem ) { if ($ this -> insideitem) (
- $this -> tag ) { switch ($ this ->-Tag) (
- : Fall "TITLE":
- .= $data ; $ This -> Titel .= $ data;
- break;
- : Fall "INHALT: codiert":
- .= $data ; $ This -> Beschreibung .= $ data;
- break;
- : case "LINK":
- .= $data ; $ This -> Link .= $ data;
- break;
- )
- )
- )
- / /
- Funktion get () (
- / /
- $this -> xml_parser , "startElement" , "endElement" ) ; xml_set_element_handler ($ this -> xml_parser, "startElement", "endElement");
- $this -> xml_parser , "characterData" ) ; xml_set_character_data_handler ($ this -> xml_parser, "characterData");
- -> getURL ( ) ; $ Data = $ this -> getURL ();
- xml_get_error_code ( $this -> xml_parser ) ) , xml_error_string (xml_get_error_code ($ this -> xml_parser));
- $this -> res ) ; return ($ this -> res);
- )
- )
Verwenden Sie diese Klasse neu formatieren Sie Ihre HTML-Ausgabe ist wirklich einfach. Hier ist ein Beispiel für seine Verwendung:
- ; require_once "crssreader.php";
- CRSSREADER ( "http://www.undolog.com/?feed=rss2&cat=1" ) ; $ Rss = new CRSSREADER ( "http://www.undolog.com/?feed=rss2&cat=1");
- / /
- -> get ( ) ; $ R = $ rss -> get ();
- / /
- $i = 0 ; $i <sizeof ( $r ) ; $i ++ ) { for ($ i = 0; $ i <sizeof ($ r); $ i + +) (
- )
Die Klasse ist genug Leistung, obwohl viel hängt von den Einstellungen der Quelle. Wenn Sie versuchen, ziehen Sie den Feed von einer Website, die als die maximale Anzahl 100 Futtermittel, die Zeit für die etwas "mehr als ein Blog, das hat bis zu 5-Feed!
Einige - wie FeedBurner - Frage Dienstleistungen, die genau dies ermöglicht, die von PHP-Klasse oben, aber Javascript verwendet. Jetzt sehen wir, wie wir erstellen ein serivizio, dass - durch Javascript - es lesen kann RSS-Feed.
Was wir machen, ist die Nutzung von PHP-Klasse oben vorgeschlagen, ohne in Parsing Javascript! Wie? Wir schaffen eine Seite index.php, und legen Sie den folgenden Code ein:
- ; require_once "crssreader.php";
- $sIn , $iNumCar = 16 ) { cutString Funktion ($ sin, $ iNumCar = 16) (
- $sOut ) ; return ($ sout);
- )
- [ "url" ] ; $ Url = $ _GET [ "url"];
- [ "max" ] ; $ Max = $ _GET [ "max"];
- CRSSREADER ( $url ) ; $ Rss = new CRSSREADER ($ url);
- -> get ( ) ; $ R = $ rss -> get ();
- " ; $ O = "document.write ( '<ul>'); \ n";
- $i = 0 ; $i <sizeof ( $r ) ; $i ++ ) { for ($ i = 0; $ i <sizeof ($ r); $ i + +) (
- $i > $max ) break ; if ($ i> $ max) break;
- " . $t . " \" target= \" _blank \" href= \" " . $u . " \" >" .cutString ( $t , 32 ) . "</a></li>'); \n " ; $ O .= "document.write ( '<a <li> title = \". $ T "\" target = \ "_blank \" href = \ ". $ U." \ ">". CutString ($ T, 32). "</ A> </ li> '); \ n";
- )
- ; $ O .= "document.write ( '</ ul >');";
- / /
Getan! Nun, wenn Sie haben diesen Code auf Ihrem Webserver (miodominio.com zum Beispiel), im Rahmen der RssReader Ordner, können Sie Ihren Service web2.0. In der Praxis wir simuliert ein Javascript, ohne es tatsächlich schaffen. Zum Beispiel, mit dem folgenden Skript kann die Ausgabe eines RSS-Feed über eine Pseudo-PHP Javascript. Auf der Seite an dem Punkt, an dem wir unsere Liste der Feeds, einfach einfügen:
Wie man sehen kann, habe ich sicher, um die URL des Feeds und einen maximalen Wert (max) in der Pseudo-GET-Anforderung Javascript -, die es nicht gibt! Stark!



















undolog »Blog Archiv» Dynamic JavaScript & CSS-Datei sagte:
[...] Dynamic JavaScript & CSS-Datei Tags: ASP, ColdFusion, CSS, HTML, HTTP, Internet, JavaScript, JSP, PHP, Server-Scripting, Entwicklung, Web-Server, web2.0Nel Post Erstellen Sie einen RSS-Reader in PHP und Javascript indirekt trafen wir eine sehr interessante Technik, die verwendet wurde, um - in der Praxis - ein Javascript-Dateien von PHP. [...]
Pille sagte:
Ich war auf der Suche nach Informationen auf dieser und haben hier passiert ist, die Post ist veraltet, aber ich denke, es ist immer noch gültig ist, sind relativ unerfahren in diesem Bereich, was ich möchte ist, ob diese Methode kann verwendet werden, für jede Website, unabhängig davon, ob Forum Gästebuch Blog, kurz gesagt, alle Web-Seite.
oder Sie können die Sonderregelung?
Danke
Giovambattista Fazioli sagte:
@ Mündliche Anti-Baby-Pille: die nur Schritte, die Sie brauchen zu folgen sind die Präsenz auf Ihrem Web-Server PHP. Für den Rest gibt es keine besonderen Beschränkungen. Da der Code ist veraltet. Wenn Sie helfen können PHP-Bibliotheken sind sicherlich die besten und analysieren XML besten in den letzten Versionen von PHP. Wie dem auch sei ein Code "vom" Sie können sicher sein, dass Arbeiten auf einem beliebigen Server installiert hat, dass mindestens PHP 4.1
Pille sagte:
oh bitte! versuchen die anderen Dinge, die Sie sagen, neueste, aber ich vermute, dass die meisten erst kürzlich erlassen und sind schwerer! cmq versuchen, ich danke Ihnen sehr für Ihre Antwort.