Remover Acentos PHP

15 02 2008
/**
 * Remover os acentos de uma string
 *
 * @param string $str
 * @return string
 */
 public static function removerAcento($str){
    $from = 'ÀÁÃÂÉÊÍÓÕÔÚÜÇàáãâéêíóõôúüç';
    $to   = 'AAAAEEIOOOUUCaaaaeeiooouuc';
    return strtr($str, $from, $to);
}

O legal dessa implementação é que ela é muito simples e usa dos recursos nativos do PHP.


Ações

Information

9 responses

17 02 2008
Anderson

Venho por meio deste agradecer-lhe pela função supramencionada. Já fiz uso da mesma em uma aplicação que desenvolvi!

19 10 2011
Simão Neto

“da mesma”, tu é policial é?

4 11 2011
battisti

Não ele apenas é eloquente! / o /

29 08 2008
Marco Carvalho

Eu consegui uma solução para resolver a questão quando as strings estiverem em encoding types diferentes.

Um htmlentities e regexp resolveram tudo… fiz um post sobre isso http://filosofiadevida.marcocarvalho.com/removendo-acentos-strings-php-enconding/

30 08 2008
battisti

muito boa solução Marcos, obrigado pela contribuição!

19 04 2010
Christiano

Não funcionou quando o texto a ser removido os acentos vem de um arquivo. Estou tentando pegar nome e sobrenome para criar o nome de usuários, então tenho um arquivo CSV, gerado pelo Excel 2003, e o retorno não da certo, os nomes vem com caracteres desconhecidos. Como: Ant�nio Cl�udio Ribeiro

20 04 2010
battisti

tem que dar uma olhada no encoding do teu arquivo pode ser que ele esteja utf8 ou iso, o que pode atrapalhar um pouco, tentou dar uma olhada na função sugerida pelo marcos ai em cima?

18 05 2012
Gustavo Matias

Muito bom! Foi bem útil pra mim, me economizou um bom tempo. xD

Muito obrigado! \o/

10 08 2012
Peterson da Silva Santos

Só pra constar:

Faltou a parte que retira os acentos da letra i, e de todas as letras em maiúsculo, então dei uma ajustada no código e ficou assim:

function RetirarAcentos($var) {

$var = strtolower($var);

$var = ereg_replace(“[áàâãªÁÄÀÃÂ]”,”a”,$var);
$var = ereg_replace(“[éèêëÉËÈÊ]”,”e”,$var);
$var = ereg_replace(“[íïìîÍÏÌÎ]”,”i”,$var);
$var = ereg_replace(“[óòôõºÓÖÒÕÔ]”,”o”,$var);
$var = ereg_replace(“[úùûÚÜÙÛ]”,”u”,$var);
$var = ereg_replace(“[çÇ]”,”c”,$var);

return $var;
}

Parabéns cara, seu código me salvo a vida.

Deixar mensagem para Peterson da Silva Santos Cancelar resposta