Programación Web y Scripting > PHP
Error con Php y XML
guillep:
Hola Amigos estoy teniendo un problema con una sindicación me muestra el siguiente mensaje.
sindicacion.php
This page contains the following errors:
error on line 32 at column 64: PCDATA invalid Char value 3
Below is a rendering of the page up to the first error.
Por favor si alguien me puede dar una mano
Muestro como tengo los dos archivos:
sindicacion.php
Código PHP:
--- Código: PHP ---<?php header ('Content-type: text/xml; content="text/html; charset=iso-8859-1'); echo ("<?xml version="1.0" encoding="iso-8859-1"?>"); ?> <rss version="2.0"> <channel> <title>Ofertas Laborales - Mipagina .: Desarrollando :.</title> <link>web</link> <description>Ofertas Laborales / Version RSS</description> <language>es</language> <image> <title>Ofertas Laborales / Version RSS</title>n <url>/imgs/logo.jpg</url> <link>web</link> <description>Ofertas Laborales - Mipagina .: Desarrollando :.</description> </image> <?php mysql_connect ("localhost", "usuario", "pass") //mysql_connect ("localhost", "root", "pass") or die ("Cannot connect to database server."); mysql_select_db ("basededatos") or die ("Cannot connect to database."); $resultado=mysql_query("SELECT * FROM pr_oferta where ofe_est='on' AND ofe_publicada='on' AND ofe_date_fin>date(now()) order by ofe_update desc limit 0,15"); //$row=mysql_fetch_array($resultado); while ($datos = mysql_fetch_array ($resultado)) { ?> <item> <title><? echo $datos["ofe_nombre"];?></title> <link> miweb/detalle.php?i=<?php echo $datos["ofe_id"];?></link> <description><? echo substr($datos["ofe_desc"],0,2000)."";?></description> </item> <? } ?> </channel> </rss>
Ahora el rss.xml
Código:
--- Código: PHP ---<?php header ('Content-type: text/xml; content="text/html; charset=iso-8859-1');echo ("<?xml version="1.0" encoding="iso-8859-1"?>");?><rss version="2.0"> <channel> <title>Ofertas Laborales - Mipagina .: Desarrollando :.</title><link>web</link><description>Ofertas Laborales / Version RSS</description><language>es</language><image><title>Ofertas Laborales / Version RSS</title>n<url>webg</url><link>web</link><description>Ofertas Laborales - Mipagina .: Desarrollando :.</description></image><?php mysql_connect ("localhost", "user", "pass") or die ("Cannot connect to database server."); mysql_select_db ("basededatos") or die ("Cannot connect to database."); $resultado=mysql_query("SELECT * FROM pr_oferta where ofe_est='On' order by ofe_update desc limit 0,15"); while ($datos = mysql_fetch_array ($resultado)) { ?> <item> <title><?php echo $datos["ofe_nombre"];?></title> <description><?php echo substr($datos["ofe_desc"],0,300)."...";?></description> <link>webl</link> <pubDate></pubDate> </item><?php}mysql_free_result ($result);?> </channel></rss>
shadow_rev:
Si no me equivoco, y el PHP está configurado con short_open_tag en off, el tag que abres para php en la línea 32 del archivo sindicacion.php es el que te genera el problema: lo tienes <? en vez de <?php.
:suerte:
F_Tanori:
Bueno, el mensaje de error es de XML, no en PHP, la linea 32 de XML, lo que te comenta shadow_rev es frecuente que ocurra, o problemas similares y confusiones con
<?xml y <?php que llegan a tener los scripts, creo que ayudaria mucho que nos mostraras el resultado XML es decir ya en el cliente (navegador; VER CODIGO FUENTE) para poder ver la estructura final del XML
Saludos
guillep:
Lo que veo es que pongo la dirección en mi navegador del rss y pongo ver código y me muestra los datos del conexión a la base de datos. Como hago para que oculte esa parte?
Si pongo en el explorador en para ver sidicacion.php y pongo ver el codigo el codigo se corta justo donde hay un acento en la linea 14.
Al parecer es un error del charset, le cambie el charset a la tabla en la base de datos y al archivo y sigue igual.
F_Tanori:
--- Cita de: "guillep" ---Lo que veo es que pongo la dirección en mi navegador del rss y pongo ver código y me muestra los datos del conexión a la base de datos. Como hago para que oculte esa parte?
--- Fin de la cita ---
En el cliente? o donde ves eso? en la pagina o en en el fuente?
--- Cita de: "guillep" ---Si pongo en el explorador en para ver sidicacion.php y pongo ver el codigo el codigo se corta justo donde hay un acento en la linea 14.
Al parecer es un error del charset, le cambie el charset a la tabla en la base de datos y al archivo y sigue igual.
--- Fin de la cita ---
Tienes que utilizar la codificacion UTF8 , al generar tu XML
http://www.php.net/manual/es/function.utf8-encode.php
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa