Skapa en RSS Reader i PHP och Javascript

Torsdagen den 25 januari 2007

Eftersom vi är på en blogg (Weblog) och fildelning RSS har blivit en standard, här är några enkla kod utdrag för att hjälpa manipulera RSS-feed.
Vi vet alla att filerna är RSS - slutet - enkel textfil som uppfyller standarden XML. Härav följer att manipulera är inte så komplicerat.

Första klass som skall införas i PHP, kan du läsa en fil från en RSS-adress, vilket gör att du kan bearbeta resultaten och upprepas av någon part.

PHP:
  1. (klass CRSSREADER
  2. = false ; insideitem $ var = false;
  3. = "" ; $ Var tagg = "";
  4. = "" ; var $ title = "";
  5. = "" ; var $ beskrivning = "";
  6. = "" ; var $ länk = "";
  7. / /
  8. = "" ; var $ url = "";
  9. ; var $ xml_parser;
  10. / /
  11. = array ( ) ; var $ res = array ();
  12. $url ) { CRSSREADER funktion ($ url) (
  13. = $url ; $ This -> url = $ url;
  14. )
  15. / /
  16. getUrl funktion () (
  17. / /
  18. ; $ Ch = curl_init ();
  19. ; // set to zero for no timeout $ Timeout = 5; / / noll för ingen timeout
  20. , CURLOPT_URL, $this -> url ) ; curl_setopt ($ ch, CURLOPT_URL, $ this -> url);
  21. , CURLOPT_RETURNTRANSFER, 1 ) ; curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);
  22. , CURLOPT_CONNECTTIMEOUT, $timeout ) ; curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout);
  23. $ch ) ; $ File_contents = curl_exec ($ ch);
  24. ) ; curl_close ($ ch);
  25. / /
  26. $file_contents ) ; avkastning ($ file_contents);
  27. )
  28. / /
  29. $parser , $name , $attrs ) { funktion startElement ($ parser, $ namn, $ attrs) (
  30. $this -> insideitem ) { if ($ this -> insideitem) (
  31. = $name ; $ This ->-taggen = $ namn;
  32. ( $name == "ITEM" ) { ) Elseif ($ namn == "ITEM") (
  33. = true ; $ This -> insideitem = true;
  34. )
  35. )
  36. / /
  37. $parser , $name ) { funktion endElement ($ parser, $ namn) (
  38. $name == "ITEM" ) { if ($ namn == "ITEM") (
  39. [ ] = array ( "title" => $this -> title , $ This -> res [] = array ( "title" => $ this -> titel,
  40. -> link , "url" => $ this -> länk
  41. -> description ) ; "beskrivning" => $ this -> beskrivning);
  42. = "" ; $ This -> title = "";
  43. = "" ; $ This -> beskrivning = "";
  44. = "" ; $ This -> länk = "";
  45. = false ; $ This -> insideitem = false;
  46. )
  47. )
  48. / /
  49. $parser , $data ) { characterData funktion ($ parser, $ data) (
  50. $this -> insideitem ) { if ($ this -> insideitem) (
  51. $this -> tag ) { switch ($ this ->-taggen) (
  52. : fall "TITLE":
  53. .= $data ; $ This -> titel .= $ data;
  54. break;
  55. : fall "Innehåll: KODATS":
  56. .= $data ; $ This -> beskrivning .= $ data;
  57. break;
  58. : fall "Länk":
  59. .= $data ; $ This -> länk .= $ data;
  60. break;
  61. )
  62. )
  63. )
  64. / /
  65. funktion får () (
  66. = array ( ) ; $ This -> res = array ();
  67. = xml_parser_create ( ) ; $ This -> xml_parser = xml_parser_create ();
  68. / /
  69. $this -> xml_parser , $this ) ; xml_set_object ($ this -> xml_parser, $ this);
  70. $this -> xml_parser , "startElement" , "endElement" ) ; xml_set_element_handler ($ this -> xml_parser, "startElement", "endElement");
  71. $this -> xml_parser , "characterData" ) ; xml_set_character_data_handler ($ this -> xml_parser, "characterData");
  72. -> getURL ( ) ; $ Data = $ this -> getUrl ();
  73. $this -> xml_parser , $data , true ) xml_parse ($ this -> xml_parser, $ data, true)
  74. sprintf ( "XML error: %s at line %d" , eller dö (sprintf ( "XML-fel:% s på rad% d",
  75. xml_get_error_code ( $this -> xml_parser ) ) , xml_error_string (xml_get_error_code ($ this -> xml_parser));
  76. $this -> xml_parser ) ) ) ; xml_get_current_line_number ($ this -> xml_parser)));
  77. $this -> xml_parser ) ; xml_parser_free ($ this -> xml_parser);
  78. $this -> res ) ; avkastning ($ this -> res);
  79. )
  80. )

Använd denna klass att formatera din HTML-utdata är egentligen enkel. Här är ett exempel på dess användning:

PHP:
  1. ; require_once "crssreader.php";
  2. CRSSREADER ( "http://www.undolog.com/?feed=rss2&cat=1" ) ; $ Rss = nya CRSSREADER ( "http://www.undolog.com/?feed=rss2&cat=1");
  3. / /
  4. -> get ( ) ; $ R = $ rss -> få ();
  5. / /
  6. . sizeof ( $r ) ; echo "Antal element". sizeof ($ r);
  7. $i = 0 ; $i <sizeof ( $r ) ; $i ++ ) { for ($ i = 0; $ i <sizeof ($ r); $ i + +) (
  8. . $r [ $i ] [ "title" ] . "" ; echo "<h1>." $ r [$ i] [ "titel"]. "";
  9. )

Klassen är tillräckligt resultat, även om mycket beror på inställningarna för den källan. Om du försöker dra ut foder från en webbplats som har angetts som högsta antalet 100 foder, den tid som behövs för att vara något "mer än en blogg som har inrättats för att foder 5!

Några - såsom FeedBurner - frågan tjänster som gör precis det som föreslås av PHP klass ovan, men använder Javascript. Nu ser vi hur vi skapar en serivizio att - med hjälp av Javascript - det kan läsa RSS-flöde.

Vad vi gör är att utnyttja klassen PHP som föreslås ovan, utan att köra i att analysera Javascript! Hur? Vi skapar en sida index.php och mata in följande kod:

PHP:
  1. ; require_once "crssreader.php";
  2. $sIn , $iNumCar = 16 ) { cutString funktion ($ synd, $ iNumCar = 16) (
  3. ( stripslashes ( $sIn ) , 0 , $iNumCar ) ; $ Sout = substr (stripslashes ($ SIN), 0, $ iNumCar);
  4. strlen ( $sIn ) > $iNumCar ) $sOut .= "..." ; om (strlen ($ SIN)> $ iNumCar) $ sout .= "...";
  5. $sOut ) ; avkastning ($ sout);
  6. )
  7. [ "url" ] ; $ Url = $ _GET [ "url"];
  8. [ "max" ] ; $ Max = $ _GET [ "max"];
  9. CRSSREADER ( $url ) ; $ Rss = nya CRSSREADER ($ url);
  10. -> get ( ) ; $ R = $ rss -> få ();
  11. " ; $ O = "document.write ( '<ul>'); \ n";
  12. $i = 0 ; $i <sizeof ( $r ) ; $i ++ ) { for ($ i = 0; $ i <sizeof ($ r); $ i + +) (
  13. $i > $max ) break ; if ($ i> $ max) break;
  14. ( trim ( $r [ $i ] [ "title" ] ) ) ; $ T = htmlspecialchars (trim ($ r [$ i] [ "titel "]));
  15. ( trim ( $r [ $i ] [ "url" ] ) ) ; $ U = htmlspecialchars (trim ($ r [$ i] [ "url "]));
  16. " . $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";
  17. )
  18. ; $ O .= "document.write ( '</ ul >');";
  19. / /
  20. ; echo $ o;

Gjord! Nu om du har placerat den här koden på din webbplats (miodominio.com till exempel), enligt RssReader mappen, du kan släppa din tjänst web2.0. I praktiken vi simulerade ett Javascript utan att egentligen skapa den. Till exempel med hjälp av följande skript kan leverera utdata från en feed-rss via en pseudo-PHP Javascript. På sidan riktar sig till den punkt där vi får vår lista med inlägg, bara infoga:

HTML:
  1. <p> Test Feed </ p>
  2. type = "text/javascript" > </script> <script src = "http://miodominio.com/rssreader/?url=http://www.undolog.com/?feed=rss2&max=5" type = "text/javascript"> </ script>
  3. </ Div>

Som ni ser gjorde jag säker på att vidarebefordra adressen till foder och ett högsta värde (max) i pseudo-GET-förfrågan Javascript - som inte finns! Stark!

Liknande Post

4 kommentarer till: "Skapa en RSS Reader i PHP och Javascript"

  1. getAvatar 1.0 Måndagen den 29 januari, 2007 at 12:36
    undolog »Blog Archive» Dynamic JavaScript och CSS Arkiv sa:

    [...] Dynamic JavaScript och CSS Arkiv Tags: ASP, ColdFusion, CSS, HTML, HTTP, Internet, JavaScript, JSP, PHP, server-scripting, utveckling, webbserver, web2.0Nel Post Skapa en RSS Reader i PHP och Javascript indirekt mötte vi en mycket intressant teknik som användes för att skapa - i praktiken - en Javascript-filer från PHP. [...]

  2. getAvatar 1.0 Torsdag 05 juni, 2008 18:33
    p-piller sa:

    Jag letade efter info om detta och har hänt här, tjänsten är föråldrad men jag tror att det fortfarande är giltigt, är ganska oerfaren på detta område, vad jag skulle vilja ställa är om denna metod kan användas för en webbplats, vare sig forum gästbok blogg, kort sagt, alla webbsida.
    eller så kan du tjäna den särskilda ordningen?
    tack

  3. getAvatar 1.0 Torsdag 05 juni, 2008 18:50
    Giovambattista Fazioli sa:

    @ Oral p-piller: den enda steg du måste följa är närvaro på din webbserver PHP. För övrigt finns det inga särskilda restriktioner. När koden är föråldrad. Om du kan hjälpa PHP bibliotek är helt klart det bästa och tolka XML-bästa på senare versioner av PHP. Hur det kan vara ett nummer "gamla" du kan lita på att fungerar på alla servrar som har installerat minst PHP 4.1

  4. getAvatar 1.0 Torsdag 05 juni, 2008 19:31
    p-piller sa:

    Åh tack! prova andra saker du säga senaste, men jag misstänker att de flesta är nya och är svårare! cmq försöka, tack så mycket för ditt svar.

Lämna en kommentar

TAG XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> href="" <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Använd <pre> att bifoga kod