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: 13 años
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 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: 13 años
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: 13 años
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 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: 15 años, 11 meses
Puntos: 126
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: 13 años
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 10:02.