Foros del Web » Programando para Internet » PHP »

Problema Generando RSS

Estas en el tema de Problema Generando RSS en el foro de PHP en Foros del Web. Hola a todos , estoy teniendo un problema al generar el archivo RSS de una noticia : Código PHP: $r.=' <?xml version = "1.0"  encoding = ...
  #1 (permalink)  
Antiguo 30/11/2012, 00:28
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 4 meses
Puntos: 20
Exclamación Problema Generando RSS

Hola a todos , estoy teniendo un problema al generar el archivo RSS de una noticia :

Código PHP:
$r.='<?xml version="1.0" encoding="UTF-8"?>'."\n";
$r.='<rss version="2.0">'."\n";
$r.='<channel>'."\n";
$r.='<title>Artículos de '.$adm[nombre_web].'</title>'."\n";
$r.='<link>http://www.miweb.com</link>'."\n";
$r.='<description>Consulta RSS Artículos de '.$adm[nombre_web].'</description>'."\n";
$r.='<language>es</language>'."\n";
$r.='<managingEditor>rss@'.$adm[nombre_web].'</managingEditor>'."\n";
$r.='<webMaster>rss@'.$adm[nombre_web].'</webMaster>'."\n";
$r.='<generator>RSS Generador</generator>'."\n";
$r.='<item>'."\n";
$r.='<title></title>'."\n";
$r.='<description></description>'."\n";
$r.='<link>http://www.miweb.com</link>'."\n";
$r.='<pubDate>23 11 2012</pubDate>'."\n";
$r.='</item>'."\n";
$r.='</channel>'."\n";
$r.='</rss>';


$rr=array($r);

foreach($rr as $r)
{
fputs($fp,"".$r."");
}


fclose($fp);


La primera cuestión es que al poner esta estructura de RSS para crear el XML , se genera todo bien y sin problema , el caso es que en firefox cuando se abre el RSS no se ve nada ni el texto ni nada y da igual lo que se haga , sale la típica ventana de firefox para leer el RSS o XML y poco más pero solo los caracteres que son insertados y que no toman el valor salen , al igual que los links que tampoco salen y en el código fuente si salen


Por otro lado no entiendo bien el tema de las etiquetas , este es el modo estándar de hacerlo con estos tags pero según parece puedo personalizar el XML , mi pregunta es , por qué cuando no se pone <rss></rss> sale el típico documeto que dice sin hoja de estilo y nada más y en el otro caso lo de firefox


En cualquier caso que puede fallar ? y cual es o sería la mejor forma de crear un archivo XML sin que de todos estos problemas


Muchas gracias y un gran saludo
  #2 (permalink)  
Antiguo 30/11/2012, 07:56
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema Generando RSS

realmente no entiendo el uso del array, siempre tendrá 1 elemento, así que el ciclo es innecesario, además para que el fputs ¿donde está el archivo donde lo almacenas?.

si el al final dumpeas la data del RSS al stdout, necesitas establecer el header con el content-type para que el navegador sepa que se trata de un RSS
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 30/11/2012, 08:41
 
Fecha de Ingreso: noviembre-2012
Mensajes: 66
Antigüedad: 11 años, 4 meses
Puntos: 10
Respuesta: Problema Generando RSS

hola, para el primer problema deberías de usar utf8_encode http://php.net/manual/es/function.utf8-encode.php y te aconsejo que uses header para indicar el tipo de documento.

Código PHP:
header('Content-Type: text/xml; charset=UTF-8'); 
Usa utf8_encode porque es probable que al encontrar la tilde de 'artículo' ya deje de mostrarse.
Código PHP:
$r.='<title>'.utf8_encode('Artículos de '.$adm[nombre_web]).'</title>'."\n"
El tema de hoja de estilo se soluciona creando una hoja de estilo propia y enlazandola:

Código PHP:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml
-stylesheet type="text/css" href="http://www.tudominio.com/tuhojadeestilosrss.css" ?>
Ejemplo de css para rss:
Código PHP:
rss {
    
displayblock;
    
font-familyverdanaarial;
    
font-sizex-small;
}
channel link {
    
displayblock;
    
margin5px 6px;
}
channel description {
    
displayblock;
    
margin5px 6px;
}
item {
    
background#E8F8FD;
    
displayblock;
    
margin10px 30px;
    
padding5px;
    
border1px dotted #aaa;
}
title {
    
fontbold large ArialHelveticasans-serif;
    
displayblock;
    
margin5px;
    
padding2px;
    
color#333;
    
border-bottom1px solid silver;
}
item title {
    
font-sizemedium;
    
color#666;
}
channel item link {
    
displayblock;
    
margin0;
}
comments {
    
displayblock;
}
docs {
    
displayblock;
    
margin20px;
    
text-aligncenter;
    
padding5px;
    
color#7f7f7f;
    
border1px solid silver;
}
channel item description {
    
displayblock;
    
background#fff;
    
border1px dotted #f5f5f5;
    
margin5px 3px;
}
/* para las etiquetas que ocultamos */
languagelastBuildDatettlguidcategorypubDategenerator {
    
displaynone;

Pero mira bien el css porque es un ejemplo y por ejemplo hay elementos que tienen display none y lo mismo no te conviene.
Esto que te digo a mi me ha funcionado.

Salu2 ;)
  #4 (permalink)  
Antiguo 30/11/2012, 10:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 4 meses
Puntos: 20
Respuesta: Problema Generando RSS

Muchas gracias a todos , voy a probar todo esto , un saludo y muchas gracias nuevamente :)

Etiquetas: rss
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.