Foros del Web » Programando para Internet » PHP »

sustitucion de caracteres

Estas en el tema de sustitucion de caracteres en el foro de PHP en Foros del Web. Como es la funcion para cambiar carateres del contenido en una variable? tengo con acentos: $a="el corazón alemán del México" y lo quiero sin acentos: ...
  #1 (permalink)  
Antiguo 04/06/2005, 03:34
 
Fecha de Ingreso: enero-2002
Mensajes: 1.123
Antigüedad: 15 años, 10 meses
Puntos: 18
sustitucion de caracteres

Como es la funcion para cambiar carateres del contenido en una variable?

tengo con acentos:
$a="el corazón alemán del México"

y lo quiero sin acentos:
$a="el corazon alemán del Mexico"


Gracias
  #2 (permalink)  
Antiguo 04/06/2005, 05:54
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 13 años
Puntos: 9
De forma algo ineficiente:

$sin_acentos = str_replace("á", "a", str_replace("é", "e", str_replace("í", "i",...strreplace("ú", "u", $cadena)))))

Mejor con expresiones regulares, aunque no soy un experto en eso, una solución que a lo mejor no es la más eficiente:

$patron[0] = "/á/";
$reemplazo[0] = "a";
$patron[1] = "/Á/";
$reemplazo[1] = "A";

$patron[2] = "/é/";
$reemplazo[2] = "e";
$patron[3] = "/É/";
$reemplazo[3] = "E";

....

$sin_acentos = preg_replace($patron, $reemplazo, $cadena);
  #3 (permalink)  
Antiguo 04/06/2005, 06:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 9
Antigüedad: 12 años, 7 meses
Puntos: 0
Cita:
Iniciado por Bier
Como es la funcion para cambiar carateres del contenido en una variable?

tengo con acentos:
$a="el corazón alemán del México"

y lo quiero sin acentos:
$a="el corazon alemán del Mexico"


Gracias
Este otro ejemplo como lo puedes hacer:

$a ="el corazón alemán del México";
echo "<br>Cadena(antes):".$a."<br>";
$traducir = array ("á"=>"a","é"=>"e","í"=>"i","ó"=>"o","ú"=>"u");
$a=strtr($a, $traducir);
echo "Cadena(después):".$a;

Claro tu te encargas de optimizar el código.


{.:xjuanitox:.}
  #4 (permalink)  
Antiguo 04/06/2005, 12:48
 
Fecha de Ingreso: enero-2002
Mensajes: 1.123
Antigüedad: 15 años, 10 meses
Puntos: 18
Gracias.

La función str_replace me es totalmente familiar. Es similar a STRTRAN( , , ) de VFP.

Es la que voy a emplear.
  #5 (permalink)  
Antiguo 04/06/2005, 13:49
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 13 años
Puntos: 9
Si la cadena es muy larga te recomiendo utilizar la de expresiones regulares o la que te ha dado xjuanitox. Ten en cuenta que al llamar a str_replaxe una vez por cada vocal te estás recorriendo la cadena 5 veces, eso puede llevar mucho tiempo en cadenas largas.

De las otras formas, solo recorres la cadena una vez. (creo )
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:02.