Foros del Web » Programando para Internet » PHP »

problema reemplazando datos en un xml..

Estas en el tema de problema reemplazando datos en un xml.. en el foro de PHP en Foros del Web. tengo este codigo: Código PHP: <?php  function  limpiar ( $texto ){ $palabras  = array( "ñ" , "Ñ" ); $reemplazar    = array( "n" , "N" ); $texto = ...
  #1 (permalink)  
Antiguo 07/05/2009, 13:38
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 2 meses
Puntos: 20
tengo este codigo:

Código PHP:
<?php 
function limpiar($texto){
$palabras = array("ñ","Ñ");
$reemplazar   = array("n","N");
$texto=str_replace($palabras,$reemplazar,$texto);
return 
$texto;
}


$url="archivo.xml";
$paginaweb file_get_contents($url);
//$paginaweb="<algo>robando Ñ ola ñ hola... test..</algo>";
echo limpiar($paginaweb);
?>

hay algunas paginas XML que tienen errores en el codigo, uno de los mas comunes es el de la letra ñ...

bue.. lo que quiero es que si tiene un error el xml ejecuta este codigo y corrige todos los errores que tenga el xml antes de pasar al parseador...

ahi lo que quiero hacer es convertir la Ñ en N...

pero cuando hago el reemplazo no me reemplaza nose por que.....

si uso esta linea funciona:
Código PHP:
$paginaweb="<algo>robando Ñ ola ñ hola... test..</algo>"
pero si uso del archivo que tiene el mismo contenido que esa linea no funciona:
Código PHP:
$paginaweb file_get_contents($url); 

Código HTML:
<algo>robando Ñ ola ñ hola... test..</algo> 
como tengo que hacer para que si me reemplaze las Ñ por la N...??

tambien probe usando chr(164) en ves de ñ.... y tampoco funciona..
Código PHP:
<?php 
function limpiar($texto){
$palabras = array(chr(164),chr(165));
$reemplazar   = array("n","N");
$texto=str_ireplace($palabras,$reemplazar,$texto);
return 
$texto;
}



$url="archivo.xml";
$paginaweb file_get_contents($url);
//$paginaweb="<algo>robando Ñ ola ñ hola... test..</algo>";
echo limpiar($paginaweb);


?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por GatorV; 07/05/2009 a las 14:03
  #2 (permalink)  
Antiguo 07/05/2009, 14:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema reemplazando datos en un xml..

Hay la posibilidad de que las Ñ (y ñ) esten codificadas con su entidad html &Ntilde; y &ntilde; respectivamente.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/05/2009, 14:08
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 2 meses
Puntos: 20
Respuesta: problema reemplazando datos en un xml..

definitivamente no es problema del xml... por que ahora probe con un archivo txt... no reemplaza ninguna ñ que este dentro del txt... ya probe con &Ntilde; con Ñ y con chr(165) y no funciona... nose como es que recibe el archivo..

Código PHP:
<?php 
$archivo
="archivo.txt";
$texto file_get_contents($archivo);
$palabras = array("&ntilde;","&Ntilde;","ñ","Ñ",chr(164),chr(165));
$reemplazar   = array("n","N","n","N","n","N");
$texto=str_replace($palabras,$reemplazar,$texto);
echo 
$texto;
?>
el problema solo es cuando usas file_get_contents($archivo);

por que si hago asi:

$texto="algo Ñ ñ algo"; ahi si funciona.. pero yo necesito que saque de un archivo..
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por farra; 07/05/2009 a las 14:25
  #4 (permalink)  
Antiguo 07/05/2009, 14:19
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problema reemplazando datos en un xml..

Imprime el archivo luego de cargarlo, lo que se me ocurre es que haya problemas con la codificación de los archivos, y los caracteres especiales se estén reemplazando por otra cosa.

Porque hice una prueba, cree un archivo XML y no tuve problemas algunos para hacer el str_replace().
  #5 (permalink)  
Antiguo 07/05/2009, 14:27
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 2 meses
Puntos: 20
Respuesta: problema reemplazando datos en un xml..

hasta ahora no se cual fue el problema.. pero logre solucionarlo de otra forma... codificando con htmlentities(), reemplazando y luego volviendo a decodificar con html_entity_decode()
Código PHP:
<?php 
//limpiando el rss
$archivo="archivo.txt";
$texto file_get_contents($archivo);
$texto htmlentities($texto);
$palabras = array("&ntilde;","&Ntilde;");
$reemplazar   = array("n","N");
$texto=str_replace($palabras,$reemplazar,$texto);
$texto html_entity_decode($texto);
echo 
$texto;
?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por farra; 12/05/2009 a las 07:39
  #6 (permalink)  
Antiguo 07/05/2009, 15:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema reemplazando datos en un xml..

Coincido con Ronruby, me suena a problema de codificacion UTF vs ISO.
__________________
- León, Guanajuato
- GV-Foto
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 21:38.