Skip to content

Instantly share code, notes, and snippets.

@luiscelismx
Created February 28, 2014 22:10
Show Gist options
  • Select an option

  • Save luiscelismx/9281064 to your computer and use it in GitHub Desktop.

Select an option

Save luiscelismx/9281064 to your computer and use it in GitHub Desktop.
Función en PHP para eliminar los acentos en una cadena de texto.
<?php
/*
-- =============================================
-- Author: Luis Antonio Celis Molina
-- Create date: 20/03/2010
-- Description: Limpia cadena y regresa sin acentos
-- Parametros: @text string con la variable a limpiar
-- =============================================
*/
function elimina_acentos($text)
{
$text = htmlentities($text, ENT_QUOTES, 'UTF-8');
$text = strtolower($text);
$patron = array (
// Espacios, puntos y comas por guion
//'/[\., ]+/' => ' ',
// Vocales
'/\+/' => '',
'/&agrave;/' => 'a',
'/&egrave;/' => 'e',
'/&igrave;/' => 'i',
'/&ograve;/' => 'o',
'/&ugrave;/' => 'u',
'/&aacute;/' => 'a',
'/&eacute;/' => 'e',
'/&iacute;/' => 'i',
'/&oacute;/' => 'o',
'/&uacute;/' => 'u',
'/&acirc;/' => 'a',
'/&ecirc;/' => 'e',
'/&icirc;/' => 'i',
'/&ocirc;/' => 'o',
'/&ucirc;/' => 'u',
'/&atilde;/' => 'a',
'/&etilde;/' => 'e',
'/&itilde;/' => 'i',
'/&otilde;/' => 'o',
'/&utilde;/' => 'u',
'/&auml;/' => 'a',
'/&euml;/' => 'e',
'/&iuml;/' => 'i',
'/&ouml;/' => 'o',
'/&uuml;/' => 'u',
'/&auml;/' => 'a',
'/&euml;/' => 'e',
'/&iuml;/' => 'i',
'/&ouml;/' => 'o',
'/&uuml;/' => 'u',
// Otras letras y caracteres especiales
'/&aring;/' => 'a',
'/&ntilde;/' => 'n',
// Agregar aqui mas caracteres si es necesario
);
$text = preg_replace(array_keys($patron),array_values($patron),$text);
return $text;
}
?>
@DarkAbsolutE
Copy link

Muy buena función, solo un inconveniente, la siguiente sección esta duplicada, de la linea 46 a la 56:
'/ä/' => 'a',
'/ë/' => 'e',
'/ï/' => 'i',
'/ö/' => 'o',
'/ü/' => 'u',

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment