/** * 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.
Venho por meio deste agradecer-lhe pela função supramencionada. Já fiz uso da mesma em uma aplicação que desenvolvi!
“da mesma”, tu é policial é?
Não ele apenas é eloquente! / o /
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/
muito boa solução Marcos, obrigado pela contribuição!
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
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?
Muito bom! Foi bem útil pra mim, me economizou um bom tempo. xD
Muito obrigado! \o/
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.