Foros del Web » Programando para Internet » PHP »

Cambiar acentos

Estas en el tema de Cambiar acentos en el foro de PHP en Foros del Web. Hola alguien save si hay alguna funcion similar a htmlentities() pero que solo cambie los acentos y letras sin cambiar los <,>,/ Un saludo....
  #1 (permalink)  
Antiguo 10/05/2009, 02:59
 
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 131
Antigüedad: 16 años
Puntos: 2
Cambiar acentos

Hola alguien save si hay alguna funcion similar a htmlentities() pero que solo cambie los acentos y letras sin cambiar los <,>,/

Un saludo.
  #2 (permalink)  
Antiguo 10/05/2009, 03:31
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: Cambiar acentos

Opción 1
Ir uno por uno:

haz una matriz que contenga los acentos y su representación así:


Código PHP:
$patr&#243;n = array("Á", "É"...);
$remplazo = array("&Aacute;","&Eacute" ...); 
Luego puedes usar preg_replace (para ello en la matriz $patrón tienes que poner "/Á/", "/É/"...) o str_replace, que no estoy seguro de que funcione con matrices.
Opción 2
Otra opción es cambiar todos los < por algún carácter qeu no uses ([ o algo parecido) y el > por otro, haces el htmlentinties() y luego vuelves a cambiarlo. Cuida si usas caráctres como ± que luego hay que sustituir &plusminus; (su representación)
Opción 3
Vuelve a cambiar los &gt; por > y los &lt; por <.
Opción 4
Quizás te convenga cambiar la codificación de tu página:

Código HTML:
<!DOCTYPE ...>
<html xmlns="..." xml:lang="es" lang="es">
 <head>
   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
  ...
 </head>

...
El content-type usado (ISO-8859-1) es el óptimo para el español y muestra todos los acentos, a parte de unas cuantas letras extrañas.

Si además lo quieres para la base de datos, también puedes cambiar la codificación de la misma, creo que es latin_5_spanish o algo así.

Este sitio usa ISO-8859-1 y el uso de este sistema no te impedirá usar &Aacute; y otras entidades por el estilo.
  #3 (permalink)  
Antiguo 10/05/2009, 03:46
 
Fecha de Ingreso: mayo-2008
Ubicación: Granada
Mensajes: 131
Antigüedad: 16 años
Puntos: 2
Respuesta: Cambiar acentos

Gracias me quedo con la opcion 3

La 4 no por que tengo entendio que UTF-8 es para todos.

Un saludo
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 07:02.