Ya que estamos en un blog (weblog) de archivos RSS e intercambio se ha convertido en la norma, aquí hay algunos extractos del código de simples útiles para la manipulación de los alimentos-RSS.
Todos sabemos que los archivos RSS son - al final - simples archivos de texto conforme a la norma XML. De ello se desprende que los manipulan no es tan complejo.
La primera clase se presentan, en PHP, puede "leer" un archivo RSS de cualquier dirección, lo que le permite procesar el resultado y llevarlo a cualquier parte.
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 | {Clase CRSSREADER = false ; insideitem $ var = false; = "" ; var $ tag = ""; = "" ; var $ title = ""; = "" ; var $ description = ""; = "" ; var $ link = ""; / / = "" ; var $ url = ""; ; var $ xml_parser; / / = array ( ) ; var $ res = matriz (); $url ) { Función CRSSREADER ($ url) { url = $url ; $ This -> url = $ url; } / / la función getURL () { / / curl_init ( ) ; $ Ch = curl_init (); 5 ; // set to zero for no timeout $ Tiempo de espera = 5; / / pone a cero para los que no hay tiempo $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 ) { startElement función ($ parser, $ name, $ attrs) { $this -> insideitem ) { if ($ this -> insideitem) { tag = $name ; $ This -> tags = $ nombre; ( $name == "ITEM" ) { } Elseif ($ nombre == "PUNTO") { insideitem = true ; $ This -> insideitem = true; } } / / $parser , $name ) { endElement función ($ parser, $ name) { $name == "ITEM" ) { if ($ nombre == "PUNTO") { res [ ] = array ( "title" => $this -> title , $ This -> res [] = matriz ("title" => $ this -> title, $this -> link , "Url" => $ this -> enlace , $this -> description ) ; "Description" => $ this - description>); title = "" ; $ This -> title = ""; description = "" ; $ This -> description = ""; link = "" ; $ This -> enlace = ""; insideitem = false ; $ This -> insideitem = false; } } / / $parser , $data ) { Función CharacterData ($ parser, $ data) { $this -> insideitem ) { if ($ this -> insideitem) { $this -> tag ) { switch ($ this -> etiquetas) { : caso "title": title .= $data ; $ This -> title .= $ datos; break; : caso "contenido: codificado" description .= $data ; $ This -> Descripción .= $ datos; break; : caso de "enlace": link .= $data ; $ This -> enlace .= $ datos; break; } } } / / la función get () { res = array ( ) ; $ This -> res = matriz (); 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 ( ) ; Datos $ = $ this -> getURL (); $this -> xml_parser , $data , true ) xml_parse ($ this -> xml_parser, $ data, true) sprintf ( "XML error: %s at line %d " , o morir ( sprintf ("error de XML:% s en la línea% 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); } } |
Utilice esta clase para volver a formatear su salida HTML es muy fácil. He aquí un ejemplo de su uso:
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 "Número de elementos:". sizeof ($ r); $i = 0 ; $i < sizeof ( $r ) ; $i ++ ) { for ($ i = 0; $ i < sizeof ($ r); $ i + +) { . $r [ $i ] [ "title" ] . "" ; echo "<h1>." $ r [$ i] ['title']. '" } |
La clase es bastante potente, aunque mucho depende de la configuración de la fuente. Si tratan de sacar de la alimentación de un sitio que ha puesto 100 como el número máximo de canales, el tiempo requerido será un "poco más que un blog que se ha fijado un máximo de 5 da de comer!
Algunos - como FeedBurner - servicios de lanzamiento que hacer exactamente lo que propone la clase PHP anteriores, pero el uso de Javascript. Ahora vamos a ver como crear un servicios que que - con ayuda de JavaScript - se puede leer RSS-Feed.
Lo que haremos es tomar ventaja de la propuesta de la clase PHP anterior, sin necesidad de analizar en Javascript! ¿Cómo? Crear una página index.php e introducir el siguiente código:
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 ) { función cutString ($ pecado, iNumCar $ = 16) { substr ( stripslashes ( $sIn ) , 0 , $iNumCar ) ; $ Sout = substr ( stripslashes ($ izquierda), 0, $ iNumCar); strlen ( $sIn ) > $iNumCar ) $sOut .= "..." ; if ( strlen ($ izquierda)> $ 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; |
¡Hecho! Ahora, si usted coloca este código en tu web (miodominio.com por ejemplo), bajo la carpeta de RssReader, se puede liberar de sus servicios web 2.0. En la práctica, hemos simulado un Javascript sin llegar a crear. Por ejemplo, usando el siguiente script puede producir una salida de conexión RSS a través de una pseudo-Javascript-PHP. En la página de destino, el punto donde queremos que aparezca la lista de los alimentos, basta con introducir:
Como se puede ver que me aseguré de pasar la url de la alimentación, y un valor máximo (max) en el pseudo-GET Javascript petición - que no existe! Fuerte!












[...] Dinámico JavaScript y CSS Tags: ASP, ColdFusion, CSS, HTML, HTTP, Internet, Javascript, JSP, PHP, programación, desarrollo de servidores, servidores Web, Post web2.0Nel crear un lector de RSS en PHP y Javascript indirectamente, nos encontramos con una técnica muy interesante que permite crear - en la práctica - un archivo de PHP JavaScript. [...]
Yo estaba buscando información sobre esto y han pasado aquí, el mensaje está anticuado, pero creo que sigue siendo válido, estoy bastante experiencia en este campo, lo que me gustaría preguntar es si este método puede ser utilizado para cualquier libro de visitas de sitio, blog o foro, en cualquier resumen, la página web.
o puede servir de medidas especiales?
gracias
@ Píldora: lo único que debe seguir son la presencia de PHP en el servidor Web. Para el resto no hay ninguna restricción especial. A medida que el código no está actualizado. Si usted puede ayudar a las bibliotecas de PHP son seguramente los más actuales y mejores análisis de XML en las versiones recientes de PHP. Sin embargo, un código es "viejo" puede estar seguro de que funciona en cualquier servidor que ha instalado al menos PHP 4.1
¡Oh, gracias! Voy a tratar de las otras cosas más recientes que usted dice, pero sospecho que la más reciente y más difíciles que son! CMQ intentar, gracias por la respuesta.
Me sale este error:
@ Wolfff81: La biblioteca cURL no siempre se instala en todos los servidores Web. Usted debe contactar con el administrador de su sitio e instalar y / o activarlo.