Foros del Web » Programando para Internet » PHP »

cambiar caracteres

Estas en el tema de cambiar caracteres en el foro de PHP en Foros del Web. Buenas a todos y que DIOS me los vendiga. Mi problema es este yo quiero cambiar unos caracteres de una cadena de texto estos son: ...
  #1 (permalink)  
Antiguo 17/12/2009, 23:24
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
De acuerdo cambiar caracteres

Buenas a todos y que DIOS me los vendiga.
Mi problema es este yo quiero cambiar unos caracteres de una cadena de texto estos son: á,é,í,ó,ú y ñ tanto en mayuscula como en minuscula por los caracteres especiales de html .
Yo utiliso este codigo pero el solo me cambia uno a la ves y quiero que me los cambie todos si estan. Este es mi codigo veanlo y digamen q le puedo hacer para que me funcione como quiero o si existe otro codgio.

Código PHP:
echo $texto"Remplasarmos letra Ñ";
echo 
"<br>";
$letra "Ñ";
$caracter1 "Ñ";
$textostr_replace($letra $caracter1 $texto);
echo 
$texto
  #2 (permalink)  
Antiguo 18/12/2009, 00:02
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: cambiar caracteres

No es una solución óptima en cuanto a recursos, pero queda elegante:
Código PHP:
function cambiazo($arrLetras$arrReemplazos$texto)
{
    if(
count($arrLetras)!=count($arrReemplazos))
    {
        echo 
"ERROR: para cada letra a reemplazar debe haber un reemplazo";
        exit();
    }
    
$letra=array_shift($arrLetras);
    
$reemplazo=array_shift($arrReemplazos);
    if(
count($arrLetras)>&& count($arrReemplazos)>0)
    {
        return 
str_replace($letra$reemplazocambiazo($arrLetras$arrReemplazos$texto));
    }
    else
    {
        return 
str_replace($letra$reemplazo$texto);
    }
}

echo 
cambiazo("Escribo con ñ y con Ñ", array('ñ''Ñ'), array('&ntilde''&Ntilde;'); 
No garantizo que funcione, lo acabo de inventar y no lo probé: simplemente va reemplazando las letras que se le pasen en los arrays (ahora que lo pienso quedaría más prolijo un sólo array pero asociativo donde la clave sea el carácter a reemplazar y el dato el reemplazo) y llamando recursivamente a la misma función con los arrays que se le pasan pero sin el elemento que ya se usó. ¡Suerte!

PD: quizás algunas funciones de expresiones regulares ya te permitan hacer eso sin tanto lío; no lo sé.
  #3 (permalink)  
Antiguo 18/12/2009, 00:23
 
Fecha de Ingreso: julio-2009
Ubicación: En mi casa
Mensajes: 48
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: cambiar caracteres

xDD
ok... buena función
pero yo lo simplifico de esta forma

$string=strtr($url, "àáâãäåèéêëìíîïòóôõöùúûüñÁÚÓÉÍ", "aaaaaaeeeeiiiiooooouuuunAUOEI");
de modo que los caracteres especiales se vuelven no especiales :D pero... yo uso charset=iso-8859-1 que me permite ver las á sin mas rollos de &alt..
__________________
buscamee y sigueme ;) www.twitter.com/gruiz92
  #4 (permalink)  
Antiguo 18/12/2009, 10:53
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: cambiar caracteres

dggluz devo de desir q no me funciono me da un error en la ultima lina pero gracias de todas formas por tu aporte y g3rz0n ya intente colocar el iso-8859-1 pero no me resulto.

si alquien tiene otra opinion selo agradesco y gracias por tu aporte
  #5 (permalink)  
Antiguo 18/12/2009, 11:13
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: cambiar caracteres

Cita:
Iniciado por Hallking Ver Mensaje
dggluz devo de desir q no me funciono me da un error en la ultima lina pero gracias de todas formas por tu aporte y g3rz0n ya intente colocar el iso-8859-1 pero no me resulto.

si alquien tiene otra opinion selo agradesco y gracias por tu aporte
Falta un paréntesis en la última línea:
Código PHP:
echo cambiazo("Escribo con ñ y con Ñ", array('ñ''Ñ'), array('&ntilde''&Ntilde;')); 
Mis disculpas. De todos modos tampoco lo probé, de modo que sigo sin garantizar que funcione; el texto lo descubrí a simple vista, por eso se me ocurrió que a lo mejor es eso. ¡Suerte!
  #6 (permalink)  
Antiguo 18/12/2009, 13:01
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: cambiar caracteres

buenas escusame la molestia pero tampoco me dio el resultado q busco.

pero gracias a eso é llegado a un codigo mira cual

Código PHP:
 $de = array ( "a""o");
$a = array ( "x""y");
echo 
str_ireplace $de$a"Hello World Mundo!");
echo 
"<br>"
el porblema de este es q solo me cambia a la ultima letra del array $a.
y lo q quiero es q me cambie donde esta a por x y donde esta o por y
si me pueden dar una ayuda.
  #7 (permalink)  
Antiguo 18/12/2009, 13:19
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: cambiar caracteres

hey escusame no me fije q si estava funcionando perdon por la molestia y espero q el codigo le sea utili a opro hermano programador

Que Dios sea con ustedes
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 22:36.