Während wir in einem Blog (Weblog) RSS-Datei und den Austausch zum Standard geworden ist, hier sind einige einfache Code Auszüge nützlich für die Manipulation Feeds-RSS.
Wir alle wissen, dass RSS-Dateien sind - am Ende - einfache Textdateien gemäß dem XML-Standard. Daraus folgt, dass sie zu manipulieren ist nicht so komplex.
Die erste Klasse, die wir derzeit in PHP, können Sie "lesen" eine RSS-Datei von einer beliebigen Adresse, so dass Sie das Ergebnis verarbeiten und nehmen Sie es überall.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | {Class CRSSREADER = false ; insideitem $ var = false; = "" ; var $ tag = ""; = "" ; var $ title = ""; = "" ; var $ description = ""; = "" ; var $ link = ""; / / = "" ; var $ url = ""; ; var $ xml_parser; / / = array ( ) ; var $ res = array (); $url ) { CRSSREADER Funktion ($ url) { url = $url ; $ This -> url = $ url; } / / Funktion getURL () { / / curl_init ( ) ; $ Ch = curl_init (); 5 ; // set to zero for no timeout $ Timeout = 5; / / set für kein Timeout Null $ch , CURLOPT_URL , $this -> url ) ; curl_setopt ($ ch, CURLOPT_URL, $ this -> url); $ch , CURLOPT_RETURNTRANSFER , 1 ) ; curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); $ch , CURLOPT_CONNECTTIMEOUT , $timeout ) ; curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout); curl_exec ( $ch ) ; $ File_contents = curl_exec ($ ch); $ch ) ; curl_close ($ ch); / / $file_contents ) ; return ($ file_contents); } / / $parser , $name , $attrs ) { Funktion startElement ($ parser, $ name, $ attrs) { $this -> insideitem ) { if ($ this -> insideitem) { tag = $name ; $ This -> tags = $ name; ( $name == "ITEM" ) { } If ($ name == "ITEM") { insideitem = true ; $ This -> insideitem = true; } } / / $parser , $name ) { Funktion endElement ($ parser, $ name) { $name == "ITEM" ) { if ($ name == "ITEM") { res [ ] = array ( "title" => $this -> title , $ This -> res [] = array ("title" => $ this -> Titel, $this -> link , "URL" => $ this -> Link , $this -> description ) ; "Description" => $ this -> Beschreibung); title = "" ; $ This -> title = ""; description = "" ; $ This -> description = ""; link = "" ; $ This -> Link = ""; insideitem = false ; $ This -> insideitem = false; } } / / $parser , $data ) { CharacterData Funktion ($ parser, $ data) { $this -> insideitem ) { if ($ this -> insideitem) { $this -> tag ) { switch ($ this -> tags) { : Bei "TITLE": title .= $data ; $ This -> title .= $ data; break; : case "content: encoded" description .= $data ; $ This -> Beschreibung .= $ data; break; : case 'LINK': link .= $data ; $ This -> Link .= $ data; break; } } } / / function get () { res = array ( ) ; $ This -> res = array (); xml_parser = xml_parser_create ( ) ; $ This -> = xml_parser xml_parser_create (); / / $this -> xml_parser , $this ) ; xml_set_object ($ this -> xml_parser, $ this); $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"); $this -> getURL ( ) ; $ Data = $ this -> getURL (); $this -> xml_parser , $data , true ) xml_parse ($ this -> xml_parser, $ data, true) sprintf ( "XML error: %s at line %d " , oder sterben ( sprintf ("XML-Fehler:% s in Zeile% d", xml_get_error_code ( $this -> xml_parser ) ) , xml_error_string ( xml_get_error_code ($ this -> xml_parser)), $this -> xml_parser ) ) ) ; xml_get_current_line_number ($ this -> xml_parser))); $this -> xml_parser ) ; xml_parser_free ($ this -> xml_parser); $this -> res ) ; return ($ this -> res); } } |
Verwenden Sie diese Klasse neu zu formatieren Sie Ihre HTML-Ausgabe ist wirklich einfach. Hier ist ein Beispiel für seine Verwendung:
1 2 3 4 5 6 7 8 9 10 11 | ; require_once "crssreader.php"; new CRSSREADER ( "http://www.undolog.com/?feed=rss2&cat=1" ) ; $ Rss = new CRSSREADER ("http://www.undolog.com/?feed=rss2&cat=1"); / / $rss -> get ( ) ; $ R = $ rss -> get (); / / . sizeof ( $r ) ; echo "Anzahl der Artikel:". sizeof ($ r); $i = 0 ; $i < sizeof ( $r ) ; $i ++ ) { for ($ i = 0; $ i < sizeof ($ r); $ i + +) { . $r [ $i ] [ "title" ] . "" ; echo "<h1>." $ r [$ i] ['title']. '" } |
Die Klasse ist ziemlich mächtig, aber viel hängt von den Einstellungen der Quelle. Wenn Sie versuchen, das Futter aus einer Website, die 100 gesetzt hat als die maximale Anzahl von Feeds, die benötigte Zeit wird ein wenig "mehr als ein Blog, das maximal 5-Feeds gesetzt hat ziehen!
Einige - wie FeedBurner - Release Dienstleistungen, die genau das tun, die von PHP-Klasse oben vorgeschlagen, aber Javascript verwendet. Jetzt sehen wir, wie man einen Service, dass zu schaffen - mit Hilfe von JavaScript - Sie RSS-Feed lesen können.
Was wir tun, ist die Vorteile der vorgeschlagenen PHP-Klasse oben, ohne das Parsen in Javascript! Wie? Erstellen Sie eine Seite index.php und legen Sie den folgenden Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ; require_once "crssreader.php"; $sIn , $iNumCar = 16 ) { cutString function ($ sin $ iNumCar = 16) { substr ( stripslashes ( $sIn ) , 0 , $iNumCar ) ; $ SAus = substr ( stripslashes ($ links), 0, $ iNumCar); strlen ( $sIn ) > $iNumCar ) $sOut .= "..." ; if ( strlen ($ links)> $ iNumCar) $ sOut .= "..."; $sOut ) ; return ($ sOut); } $_GET [ "url" ] ; $ Url = $ _GET ["url"]; $_GET [ "max" ] ; $ Max = $ _GET ["max"]; new CRSSREADER ( $url ) ; $ Rss = new CRSSREADER ($ url); $rss -> get ( ) ; $ R = $ rss -> get (); "document.write('<ul>'); \n " ; $ 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; htmlspecialchars ( trim ( $r [ $i ] [ "title" ] ) ) ; $ T = htmlspecialchars ( trim ($ r [$ i] ['title'])); htmlspecialchars ( trim ( $r [ $i ] [ "url" ] ) ) ; $ U = htmlspecialchars ( trim ($ r [$ i] ['url'])); "document.write('<li><a title= \" " . $t . " \" target= \" _blank \" href= \" " . $u . " \" >" . cutString ( $t , 32 ) . "</a></li>'); \n " ; $ O .= "document.write ('<a title = <li> \" ". $ T." _blank \ "target = \" \ "href = \" ". $ U." \ ">". CutString ($ t, 32) "</ a> </ li> ') \ n".; } "document.write('</ul>');" ; $ O .= "document.write ('</ ul >');"; / / ; echo $ o; |
Fertig! Nun, wenn Sie diesen Code auf Ihrer Webseite platziert (miodominio.com zum Beispiel), unter dem Ordner RssReader, können Sie Ihre Version Web 2.0 Dienste. In der Praxis simulierten wir ein Javascript, ohne tatsächlich schaffen es. Zum Beispiel kann mit dem folgenden Skript Ausgang eines RSS-Feeds durch einen Pseudo-Javascript-PHP erzeugen. In der betreffenden Seite, der Punkt, wo wir wollen, dass unsere Liste von Futtermitteln, geben Sie einfach:
Wie Sie sehen ich dafür gesorgt, dass die URL des Feeds und einen Maximalwert (max) im Pass der pseudo-GET-Anfrage Javascript - das gibt es nicht! Strong!












[...] Dynamische JavaScript-und CSS-Dateien Tags: ASP, ColdFusion, CSS, HTML, HTTP, Internet, Javascript, JSP, PHP, Scripting, Server-Entwicklung, Web-Server, web2.0Nel Beitrag Erstellen eines RSS-Reader in PHP und Javascript indirekt trafen wir eine sehr interessante Technik, die zur Erstellung erlaubt - in der Praxis - eine Datei von PHP JavaScript. [...]
Ich war für Informationen zu diesem suchen und hier passiert ist, die Post ist veraltet, aber ich denke immer noch gültig ist, ich ziemlich unerfahren in diesem Bereich bin, was ich möchte fragen, ob diese Methode für jede Website, Blog oder Forum Gästebuch genutzt werden kann, kurz gesagt, jede Web-Seite.
oder Sie können dazu dienen spezielle Schritte?
Dank
@ Pill: die einzigen Dinge, die Sie befolgen müssen, sind das Vorhandensein von PHP auf Ihrem Web-Server. Für den Rest gibt es keine besonderen Einschränkungen. Da der Code ist veraltet. Wenn Sie helfen können PHP-Bibliotheken sind sicherlich die aktuellsten und besten parse XML in neueren Versionen von PHP. Allerdings ist ein Code, der "vom" können Sie sicher sein, dass es auf jedem Server, der hat zumindest installiert PHP 4.1 funktioniert Rest
oh danke! Ich werde versuchen, die anderen neueren Sachen sagen, aber ich vermute, dass die neueren und desto schwieriger sind sie! cmq versuchen, danke für die Antwort.
Ich bekomme diese Fehlermeldung:
@ Wolfff81: Die cURL Bibliothek ist nicht immer auf allen Web-Servern installiert. Sie sollten sich an den Administrator Ihrer Website und installieren und / oder aktivieren Sie ihn.