Normalizando caracteres en PHP Imprimir
Desarrollo Web - PHP
Escrito por Horacio Contreras   
Jueves, 23 de Octubre de 2008 14:40

Generalmente es necesario en algún script tener caracteres estándar, ya sea por problemas con la codificación o simplemente por gusto.

Con la siguiente función se puede normalizar cualquier cadena de caracteres a un alfabeto estándar, es decir, sin acentos, ni espacios, ni eñes, etc...


function normaliza($TEXTO)
{
//Funcion normaliza tomada de http://rmf.fciencias.unam.mx/demonios
$TEXTO=ereg_replace ("/", "-", $TEXTO); //reemplaza diagonales por guión medio, evita problemas con nombres de archivos y URL's
$TEXTO=ereg_replace (", ", "_", $TEXTO);//reemplaza comas y espacio por guión bajo
$TEXTO=ereg_replace (" ", "_", $TEXTO);//reemplaza espacios por guión bajo
$TEXTO=ereg_replace ("__", "_", $TEXTO);//reemplaza doble guión bajo por uno solo
$TEXTO=ereg_replace ("_-_", "-", $TEXTO);//reemplaza _-_ por _
$TEXTO=strtr(strtolower("$TEXTO"),//pone todo el TEXTO a minusculas
"ÀÁÂÃÄÅàáâãäåÈÉÊËèéêëÌÍÎÏìíîïÒÓÔÕÖØòóôõöøÙÚÛÜùúûüÇçÑñÿ",
"aaaaaaaaaaaaeeeeeeeeiiiiiiiioooooooooooouuuuuuuuccnny");//estas dos líneas cambian todos los caracteres "raros" a estándar
//visita http://rmf.fciencias.unam.mx/demonios
return $TEXTO;//fin
}

Se usa como cualquier función de PHP, le asigno a una variable el valor de la cadena a convertir y después le aplico la función

 

ejemplo:

$cadena="Êstë és úñ tèxtô ñö/ëstándår";

normaliza($cadena);

echo $cadena; //  ->  Este_es_un_texto_no-estandar

 

 Por supuesto podemos hacer los reemplazos que convengan mejor a nuestra aplicación

Para mayor información puedes buscar en el manual de PHP las funciones usadas:

 ereg_replace, strtolower, strtr

Sí te es de utilidad o no, agradeceré tus comentarios

Última actualización el Jueves, 23 de Octubre de 2008 14:59