Skip to content

Función en php para corregir la presentación de acentos en código HTML

enero 5, 2011

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

From → Tips

6 comentarios
  1. 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);

  2. lizet permalink

    mmm no necesitas hacer todo eso para eso existe htmlentities($cad);

  3. 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.

  4. Roger permalink

    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.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: