Función en php para corregir la presentación de acentos en código HTML
Si a la hora de imprimir información obtenida de una base de datos, te muestra caracteres raros en lugar de mostrarte los caracteres acentuados, o bien la “ñ” no la muestra como debiera, en este artículo te voy a explicar y a pasar una función con la que puedes corregir fácilmente ese problema.
Por ejemplo; si tienes que mostrar la información de cada cliente que se registro respetando los acentos, pues no te vas a poner a traducir manualmente cada registro al código html que resuelve el problema ¿verdad?, imagina una base de datos con mil clientes registrados, pues bien con solo utilizar la función que a continuación te explico resuelves el problema.
Te explico pues como quedaría la función y como funciona. Primeramente echamos mano de la función en php strtr(), esta función recibe dos parámetros uno es la cadena en la que vamos a trabajar y el otro es lo que queremos que cambie y aquí lo mas interesante podemos utilizar un arreglo.
Por ejemplo:
$cambia = array (“hola”=>”adios”,”entra”=>”sale”);
$cad_original = “hola pedro, entra”;
$cad_cambiada = strtr($cad_original,$cambia);
Si imprimimos cad_cambiada con echo tendría: “adios pedro, sale”.
Ahora si, veamos entonces como puede quedar la función que se va a encargar de cambiar las vocales acentuadas por el código html correspondiente:
function aHtml($cadena){
$minusculas = array (“á”=>”á”,”é”=>”é”,”í”=>”í”,”ó”=>”ó”, “ú”=>”ú”,”ñ”=>”ñ”);
$mayusculas = array (“Á”=>”Á”,”É”=>”É”,”Í”=>”Í”,”Ó”=>”Ó”, “Ú”=>”Ú”,”Ñ”=>”Ñ”);
$cad = strtr($cadena,$minusculas);
$cad = strtr($cadena,$mayusculas);
return $cad;
}
Cada vez que necesitemos corregir los códigos mandamos la cadena a la función aHtml, por ejemplo:
<?php
echo “<center>”.aHtml(“LÓPEZ”).”</center>”;
?>
O bien otro ejemplo, para utilizar la función que acabas de crear puede verse en el siguiente ejemplo:
<?php
$cad = “Hola es para probar los acentos y las eñes á é Í Ó”;
echo “<center>”.aHtml($cad).”<br />”.$cad.”</center>”;
?>
Recuerda tener la función en el mismo archivo o bien haberla incluido con la función include. Puedes descargar el ejemplo dándole click aquí.
Espero te haya servido este artículo y déjame tu comentario, de que te gustaría aprender o bien que es lo que se te dificulta cuando quieres programar en php.
Atte, tu amigo
Salvador López
Muchas gracias, me sirivió, pero tuve que cambiar algo del código. Donde dice: $cad = strtr($cadena,$mayusculas); debería decir $cad = strtr($cad,$mayusculas);
mmm no necesitas hacer todo eso para eso existe htmlentities($cad);
bueno compañero estoy desarrolando un sistema web y tenia este problema .. digo tenia xk ya encontre tu solucion .. me sirvo de mucho gracias ehh.. espero k sigas apoyando a la gente ke necesite aprender.. xvre.
Me da mucho gusto saber que mis artículos les sirvan, y esto comentarios dan ánimos a seguir. Gracias por tu comentario Erick y espero que sigas visitando este espacio y el de http://AprendeAprogramarEnPHPya.com/blog.
Excelentes articulos me estan haciendo de gran ayuda, muchisima gracias por tomarte la molestia de hacerlos, esperamos mas articulos tuyos, saludos.
Gracias que alegria me da saber que te sirven, estamos trabajando en mas artículos, en breve me dare a la tarea de escribir mínimo 2 artículos por semana, siempre planeados para que sean de utilidad.