Foros del Web » Programando para Internet » PHP »

este codigo RSS-PHp no me quiere ir...

Estas en el tema de este codigo RSS-PHp no me quiere ir... en el foro de PHP en Foros del Web. resumiendo,llevo varios dias batallando para poder pasar las noticias de mi BD MYSQL a RSS,encontre este codigo por inet: Código PHP: <?  echo  '<'  ;  ...
  #1 (permalink)  
Antiguo 29/12/2005, 17:44
Avatar de Diabolus  
Fecha de Ingreso: diciembre-2004
Mensajes: 453
Antigüedad: 21 años, 10 meses
Puntos: 0
este codigo RSS-PHp no me quiere ir...

resumiendo,llevo varios dias batallando para poder pasar las noticias de mi BD MYSQL a RSS,encontre este codigo por inet:

Código PHP:
<? 
echo '<' ; ?> ?xml version="1.0" encoding="ISO-8859-1"?> 


Sin mas, pasamos a generar el volcado XML de los datos de la base de datos: 
$db_direccion = 'localhost' ; 
$db_user = 'root' ; 
$db_pass = '' ; 
$db_name = 'db_1' ; 
$db_table = 'noticias' ; 
$db_campo_fecha = 'fecha' ; 
$db_campo_titulo = 'titulo' ; 
$db_campo_texto = 'texto' ; 
$db_campo_url = 'id' ; 
$pg_titulo = 'miwebsite'; 
$pg_link = 'http://www.taltaltal.net' ; 
$pg_descripcion = '......' ; 
$pg_idioma = 'es' ; 

Header ( "Content-type: text/xml" ); 
echo '<' ; ?> ?xml version="1.0" encoding="ISO-8859-1"?> 

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" 
"http://my.netscape.com/publish/formats/rss-0.91.dtd"> 

<rss version="0.91"> 

<channel> 
<title> <?=$pg_titulo?> </title> 
<link> <?=$pg_link?> </link> 
<description> <?=$pg_descripcion?> </description> 
<language> <?=$pg_idioma?> </language> 
<? 
$db 
= mysql_connect ( $db_direccion , $db_user , $db_pass ); 
if(!isset( 
$perPage )) $perPage = 10 ; 
$sql = "SELECT * FROM $db_table WHERE pendiente = 1 ORDER BY $db_campo_fecha DESC LIMIT 0,$perPage" ; 
$qry = mysql_db_query ( $db_name , $sql , $db ); 
while ( 
$row = mysql_fetch_array ( $qry )){ 
echo 
"n" ; 
echo 
" <item>n" ; 
echo 
" <title>" . $row [ $db_campo_titulo ]. "</title>n" ; 
$desc = preg_replace ( "/[(.*?)]/i" , "" , $row [ $db_campo_texto ]); 
$desc = substr ( $desc , 0 , 230 ); 
$desc = str_replace ( '<' , '&lt;' , $desc ); 
$desc = str_replace ( "n" , '' , $desc ); 
$desc = str_replace ( "r" , '' , $desc ); 
echo 
" <description>" . $desc . "</description>n" ; 
echo 
" <link>" . $row [ $db_campo_url ]. "</link>n" ; 
echo 
" </item>n" ; 
} 
?> 

</channel> 
</rss>
El problema es que me sale esto cuando llamo a la pagina:

< ?xml version="1.0" encoding="ISO-8859-1"?> Sin mas, pasamos a generar el volcado XML de los datos de la base de datos: $db_direccion = 'localhost' ; $db_user = 'root' ; $db_pass = '' ; $db_name = 'db_1' ; $db_table = 'noticias' ; $db_campo_fecha = 'fecha' ; $db_campo_titulo = 'titulo' ; $db_campo_texto = 'texto' ; $db_campo_url = 'id' ; $pg_titulo = 'miwebsite'; $pg_link = 'http://www.taltaltal.net' ; $pg_descripcion = '......' ; $pg_idioma = 'es' ; Header ( "Content-type: text/xml" ); echo '<' ; ?> ?xml version="1.0" encoding="ISO-8859-1"?>

que puede ser?

muchisimas gracias desde ya!
  #2 (permalink)  
Antiguo 30/12/2005, 06:12
Avatar de Diabolus  
Fecha de Ingreso: diciembre-2004
Mensajes: 453
Antigüedad: 21 años, 10 meses
Puntos: 0
He estado mirando y no es cosa de la BD,tambien he provado a "cerrar" el codigo php en varias ocasiones(en donde parece que se cierra y luego aparece la conex a la BD),pero nada de nada.
  #3 (permalink)  
Antiguo 01/01/2006, 04:45
Avatar de Diabolus  
Fecha de Ingreso: diciembre-2004
Mensajes: 453
Antigüedad: 21 años, 10 meses
Puntos: 0
Se que Cluster me cortara las melenas por esto.....pero nadie sabe que puede pasar?una pista?^^

Aqui dejo el codigo modificado,ahora me muestra las noticias,pero en texto normal,no en RSS.
Código PHP:
<? 
echo '<' ; ?> ? xml version="1.0" encoding="ISO-8859-1" ?> 

<?
$db_direccion 
= 'localhost' ;  
$db_user = 'root' ;  
$db_pass = '' ;  
$db_name = 'db_1' ;  
$db_table = 'noticias' ;  
$db_campo_fecha = 'fecha' ;  
$db_campo_titulo = 'titulo' ;  
$db_campo_texto = 'texto' ;  
$db_campo_url = 'id' ;  
$pg_titulo = 'miwebsite';  
$pg_link = 'http://www.taltaltal.net' ;  
$pg_descripcion = '......' ;  
$pg_idioma = 'es' ;  


Header ( "Content-type: text/xml" ); 
echo 
'<' ; ?> ?xml version="1.0" encoding="ISO-8859-1"?> 

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" 
"http://my.netscape.com/publish/formats/rss-0.91.dtd"> 

<rss version="0.91"> 

<channel> 
<title> <?=$pg_titulo?> </title> 
<link> <?=$pg_link?> </link> 
<description> <?=$pg_descripcion?> </description> 
<language> <?=$pg_idioma?> </language> 
<? 
$db 
= mysql_connect ( $db_direccion , $db_user , $db_pass ); 
if(!isset( 
$perPage )) $perPage = 10 ; 
$sql = "SELECT * FROM $db_table WHERE pendiente = 1 ORDER BY $db_campo_fecha DESC LIMIT 0,$perPage" ; 
$qry = mysql_db_query ( $db_name , $sql , $db ); 
while ( 
$row = mysql_fetch_array ( $qry )){ 
echo 
"n" ; 
echo 
" <item>n" ; 
echo 
" <title>" . $row [ $db_campo_titulo ]. "</title>n" ; 
$desc = preg_replace ( "/[(.*?)]/i" , "" , $row [ $db_campo_texto ]); 
$desc = substr ( $desc , 0 , 230 ); 
$desc = str_replace ( '<' , '&lt;' , $desc ); 
$desc = str_replace ( "n" , '' , $desc ); 
$desc = str_replace ( "r" , '' , $desc ); 
echo 
" <description>" . $desc . "</description>n" ; 
echo 
" <link>" . $row [ $db_campo_url ]. "</link>n" ; 
echo 
" </item>n" ; 
} 
?> 

</channel> 
</rss>
Gracias ^^

EDITO:
Arreglado!!! parece ser que no acepta bien el signo "&" y lo usaba en una noticia!! de hay me daba muchos errores!!!

Gracias de todas formas ^^

Última edición por Diabolus; 01/01/2006 a las 09:12
  #4 (permalink)  
Antiguo 02/01/2006, 05:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 24 años, 9 meses
Puntos: 129
No hace falta que sustituyas tus caracteres como ñ y demás por su "entidad HTML" o bien los elimines.

Usa:

utf8_encode()
www.php.net/utf8_encode

y para no tener problemas con comillas ' (simples) .. usa a su vez:

stripslashes()
http://www.php.net/manual/en/function.stripslashes.php

Y el "encodign" del XML generado .. podrías usar en concordancia:
encoding="utf8"
(creo que es así .. revisalo).


Un saludo,
  #5 (permalink)  
Antiguo 09/01/2006, 16:59
Avatar de Diabolus  
Fecha de Ingreso: diciembre-2004
Mensajes: 453
Antigüedad: 21 años, 10 meses
Puntos: 0
si,cierto Cluster! gracias!! lo he mirado y si tienes razon ;)
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 20:23.