Foros del Web » Programando para Internet » PHP »

Ver feeds de RSS en mi web

Estas en el tema de Ver feeds de RSS en mi web en el foro de PHP en Foros del Web. Buenas este en mi pagina quisiera poner las noticias de otras paginas mediante sus Feeds de sus RSS, y este yo tengo tambien mi RSS ...
  #1 (permalink)  
Antiguo 11/12/2007, 15:27
 
Fecha de Ingreso: octubre-2004
Ubicación: Lima, Perú
Mensajes: 185
Antigüedad: 20 años
Puntos: 1
Ver feeds de RSS en mi web

Buenas este en mi pagina quisiera poner las noticias de otras paginas mediante sus Feeds de sus RSS, y este yo tengo tambien mi RSS ya que lo hize en php y base de datos, pero mi duda es como hacer para leerlo en mi web y que se vea como un simple lenguaje de html como se ve en los blogalaxia y Perublogs mediante los rss de otros blogs.
Salu2!!!
__________________
VkManga.Com
De todo un Poco
  #2 (permalink)  
Antiguo 11/12/2007, 16:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Ver feeds de RSS en mi web

Para leer los feeds necesitas saber parsear el XML que te regresa el RSS, hay varias clases ya pre-hechas que leen el RSS y te pueden dar los datos para que tu los dibujes en tu HTML directamente.

Saludos.
  #3 (permalink)  
Antiguo 12/12/2007, 07:52
 
Fecha de Ingreso: marzo-2005
Mensajes: 49
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Ver feeds de RSS en mi web

Vhyll fijate este codigo php si te sirve. Yo utilizo para rss.
Código PHP:
<?php
set_time_limit
(0);
// pagina en rss a parsear
$file "http://www.forosdelweb.com/external.php?type=RSS2";

$rss_channel = array();
$currently_writing "";
$main "";
$item_counter 0;

function 
startElement($parser$name$attrs) {
       global 
$rss_channel$currently_writing$main;
       switch(
$name) {
           case 
"RSS":
           case 
"RDF:RDF":
           case 
"ITEMS":
               
$currently_writing "";
               break;
           case 
"CHANNEL":
               
$main "CHANNEL";
               break;
           case 
"IMAGE":
               
$main "IMAGE";
               
$rss_channel["IMAGE"] = array();
               break;
           case 
"ITEM":
               
$main "ITEMS";
               break;
           default:
               
$currently_writing $name;
               break;
       }
}

function 
endElement($parser$name) {
       global 
$rss_channel$currently_writing$item_counter;
       
$currently_writing "";
       if (
$name == "ITEM") {
           
$item_counter++;
       }
}

function 
characterData($parser$data) {
    global 
$rss_channel$currently_writing$main$item_counter;
    if (
$currently_writing != "") {
        switch(
$main) {
            case 
"CHANNEL":
                if (isset(
$rss_channel[$currently_writing])) {
                    
$rss_channel[$currently_writing] .= $data;
                } else {
                    
$rss_channel[$currently_writing] = $data;
                }
                break;
            case 
"IMAGE":
                if (isset(
$rss_channel[$main][$currently_writing])) {
                    
$rss_channel[$main][$currently_writing] .= $data;
                } else {
                    
$rss_channel[$main][$currently_writing] = $data;
                }
                break;
            case 
"ITEMS":
                if (isset(
$rss_channel[$main][$item_counter][$currently_writing])) {
                    
$rss_channel[$main][$item_counter][$currently_writing] .= $data;
                } else {
                    
$rss_channel[$main][$item_counter][$currently_writing] = $data;
                }
                break;
        }
    }
}

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startElement""endElement");
xml_set_character_data_handler($xml_parser"characterData");
if (!(
$fp fopen($file"r"))) {
    die(
"could not open XML input");
}

while (
$data fread($fp4096)) {
    if (!
xml_parse($xml_parser$datafeof($fp))) {
        die(
sprintf("XML error: %s at line %d",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);

// sale en formato html


if (isset($rss_channel["ITEMS"])) {
    if (
count($rss_channel["ITEMS"]) > 0) {
        
// contador de cuantas noticias quires que se vea en html - cambiar la variable i 
for($i 0;$i 2;$i++) {
            if (isset(
$rss_channel["ITEMS"][$i]["LINK"])) {

// fecha de publicación            
print ("<div>"utf8_decode($rss_channel["ITEMS"][$i]["PUBDATE"]) . "</div>");

// titulo con link a la noticia
print ("<a href='".utf8_decode($rss_channel["ITEMS"][$i]["LINK"])."'>"utf8_decode($rss_channel["ITEMS"][$i]["TITLE"]) . "</a>");
            }

// texto de la noticia
print ("<div>"utf8_decode($rss_channel["ITEMS"][$i]["DESCRIPTION"]) . "</div><br />");         }
    } else {
        print (
"<b>Ho hay rss</b>");
    }
}

?>
Espero que te sirva.
  #4 (permalink)  
Antiguo 12/12/2007, 22:43
 
Fecha de Ingreso: octubre-2004
Ubicación: Lima, Perú
Mensajes: 185
Antigüedad: 20 años
Puntos: 1
Re: Ver feeds de RSS en mi web

Hola samuel2005, muchas gracias me ha servido de mucho y si e funciono, gracias antetodo
__________________
VkManga.Com
De todo un Poco
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:01.