Foros del Web » Programando para Internet » PHP »

Problema al crear un XML

Estas en el tema de Problema al crear un XML en el foro de PHP en Foros del Web. Código PHP: <?php //header('Content-type: text/xml; charset=UTF-8'); include( "con.inc" ); $link  =  Connect (); if (!isset( $_GET [ "num" ])) {     echo  "ERROR, dame un numero!" ;     exit; } $prints  =  50 ; ...
  #1 (permalink)  
Antiguo 12/02/2010, 12:24
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Problema al crear un XML

Código PHP:
<?php
//header('Content-type: text/xml; charset=UTF-8');
include("con.inc");
$link Connect();
if (!isset(
$_GET["num"])) {
    echo 
"ERROR, dame un numero!";
    exit;
}
$prints 50;
$sum 0;
$sitemapnum $_GET["num"];
$min $sitemapnum $prints;
$sacar mysql_query("SELECT id,titulo,artist FROM files LIMIT $min,$prints");
$XML="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$XML.="<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
while (
$ver mysql_fetch_assoc($sacar)) {
    
$sum++;
    
$numrand rand(2000,4000);
    
$fecha date("Y-m-d");
    
$id$ver["id"];
    
$titulo utf8_decode($ver["titulo"]);
    
$artist utf8_decode($ver["artist"]);
    
$texto_indexa $titulo."-".$artist;
    
$texto_indexa preg_replace('/\s+/'' '$texto_indexa);
    
$texto_indexa str_replace("#"""$texto_indexa);
    
$texto_indexa str_replace(" ""-"$texto_indexa);
    
$texto_indexa str_replace("%"""$texto_indexa);
    
$texto_indexa str_replace("/""-"$texto_indexa);
    
$texto_indexa str_replace('"\"'"-"$texto_indexa);
    
$texto_indexa str_replace("`"""$texto_indexa);
    
$texto_indexa str_replace("'"""$texto_indexa);
    
$texto_indexa str_replace("ñ""n"$texto_indexa);
    
$texto_indexa str_replace("'""-"$texto_indexa);
    
$texto_indexa str_replace("´""-"$texto_indexa);
    
$link_indexa $id.'/'.$texto_indexa;
    
$url 'http://www.dominio.com/go/'.$link_indexa;
    
$XML.= "<url>";
    
$XML.= "<loc>".$url."</loc>";
    
$XML.= "<lastmod>{$fecha}T14:18+00:00</lastmod>\n";
    
$XML.= "<changefreq>weekly</changefreq>\n";
    
$XML.= "<priority>0.{$numrand}</priority>\n";
    
$XML.="</url>";
}
$XML.="</urlset>";
echo 
$XML// devuelve el xml
?>
El problema es que a pesar del utf_encode, el XML me da error:

Error de lectura XML: entidad no definida
Ubicación: http://domain.com/sitemaps/genera.php?num=2
Número de línea 122, columna 96:</url><url><loc>http://www.domain.com/go/134242/el-sue&ntilde;o-de-morfeo</loc><lastmod>2010-02-12T14:18+00:00</lastmod>
-----------------------------------------------------------------------------------------------^

Ya que me convierte las ñ en &ntilde; es decir, no me hace caso con el utf8_encode

__________________
aste nagusia
  #2 (permalink)  
Antiguo 12/02/2010, 12:28
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema al crear un XML

donde esta el utf8_encode?, yo veo solo utf8_decode ¿?

&ntilde; es una entidad HTML, que devuelve como tal htmlentities, debe estar así en la data, cuando guardes data html usa mejor htmlspecialchars

utf8_en/decode no producen entidades html, solo codifican
  #3 (permalink)  
Antiguo 12/02/2010, 12:34
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema al crear un XML

Cita:
Iniciado por maycolalvarez Ver Mensaje
donde esta el utf8_encode?, yo veo solo utf8_decode ¿?

&ntilde; es una entidad HTML, que devuelve como tal htmlentities, debe estar así en la data, cuando guardes data html usa mejor htmlspecialchars

utf8_en/decode no producen entidades html, solo codifican
tienes razón, pero es que he probado tanto decode como encode y no me hace caso

ya veo que &ntilde; es generado por haber utilizado htmlentites, como puedo hacer lo inverso? convertir de htmlentities a ñ para que me valide el XML?

Gracias :)

P.D: Edito, he encontrado html_entity_decode(). y creo que me funciona

gracias! :D
__________________
aste nagusia
  #4 (permalink)  
Antiguo 12/02/2010, 12:39
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: Problema al crear un XML

html_entity_decode()
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 12/02/2010, 12:39
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema al crear un XML

http://www.php.net/manual/en/functio...ity-decode.php
  #6 (permalink)  
Antiguo 12/02/2010, 12:41
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema al crear un XML

que va, sigue sin funcionar


-&amp;-oscar-d�le�n&lt;/loc&gt;&lt;la

me saca esto el error :(
__________________
aste nagusia
  #7 (permalink)  
Antiguo 12/02/2010, 12:43
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema al crear un XML

ahora veo que el texto está codificado a URL, decodificalo: http://php.net/manual/en/function.urldecode.php
  #8 (permalink)  
Antiguo 12/02/2010, 12:50
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema al crear un XML

Cita:
Iniciado por maycolalvarez Ver Mensaje
ahora veo que el texto está codificado a URL, decodificalo: http://php.net/manual/en/function.urldecode.php
me saca el mismo error

ciliaci�n-kiara-&-oscar-d�le�n</loc><las

con

$titulo = html_entity_decode(urldecode($ver["titulo"]));
$artist = html_entity_decode(urldecode($ver["artist"]));
__________________
aste nagusia
  #9 (permalink)  
Antiguo 12/02/2010, 18:25
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema al crear un XML

alguien me echa un cable? :(
__________________
aste nagusia
  #10 (permalink)  
Antiguo 12/02/2010, 20:30
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: Problema al crear un XML

Intentaste asi?

Código PHP:
Ver original
  1. htmlentities($tuVariable,ENT_QUOTES,'ISO-8859-15');

O asi?

Código PHP:
Ver original
  1. htmlspecialchars_decode($tuVariable, ENT_QUOTES);
__________________
HV Studio
Diseño y desarrollo web

Etiquetas: xml
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 13:12.