Filosofia de Vida - Pensamento, comportamento e opinião

  • Categorias

  • Calendário

    janeiro 2009
    D S T Q Q S S
    « out    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • Posts Recentes

29
ago

Como remover acentos com regular expression no PHP usando Enconding

O PHP ainda não lida direito com enconding type, se você mandar substituir um ‘á’ e a string não estiver em UTF-8 você terá sérios problemas. Eu rachei a cuca um pouco e consegui um wordarround bem interessante.

Usei os HTML entities (que já entendem o encoding type) e depois mandei substituir as entidades por sua respectiva letra sem acentos. Easy, clean e indolor.

Veja o código:


function listaimagemRemoveAcentos($str, $enc = "UTF-8"){

$acentos = array(
'A' => '/À|Á|Â|Ã|Ä|Å/',
'a' => '/à|á|â|ã|ä|å/',
'C' => '/Ç/',
'c' => '/ç/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ|Ö/',
'o' => '/ò|ó|ô|õ|ö/',
'U' => '/Ù|Ú|Û|Ü/',
'u' => '/ù|ú|û|ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'a.' => '/ª/',
'o.' => '/º/');

   return preg_replace($acentos,
                       array_keys($acentos),
                       htmlentities($str,ENT_NOQUOTES, $enc));
}

Com esta função simples resolvi todos os quiprocós :)

4 Responses to “Como remover acentos com regular expression no PHP usando Enconding”

  1. 1
    Alexandre Says:

    Meus parabéns! Função simples e a única que resolveu meu problema de acentuação com um script de busca no site. ;) Obrigado!

  2. 2
    Diego Soares Says:

    Os acentos são problemas que nós brasileiros enfrentamos constantemente. Felizmente, a sua função resolve esses problemas.

    Abraços,

    Diego Soares

  3. 3
    Flavio Silveira Says:

    Muito obrigado…

    Passei dois dias tentando resolver isso…

    Obrigado mesmo..
    te devo essa…

  4. 4
    Daniel Affonso Says:

    MUITO OBRIGADO por compatilhar essa funcao.
    Boa sacada, parabens e mais uma vez muito obrigado.
    Daniel

Leave a Reply

© 2009 Filosofia de Vida - Pensamento, comportamento e opinião | Entries (RSS) and Comments (RSS)

Design by Web4 Sudoku - Powered By Wordpress