PHP - Remove acentos e caracteres especiais.
Esconder código-fonte
<?
/*
* Script para remover acentos e caracteres especiais:
*/
$palavra = "açúcar união";
$palavra = ereg_replace("[^a-zA-Z0-9_]", "", strtr($palavra, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));
echo($palavra); // imprime "acucar_uniao"
/*
* A função "strtr" substitui os caracteres acentuados pelos não acentuados.
* A função "ereg_replace" utiliza uma expressão regular que remove todos os caracteres que não são letras, números e são diferentes de "_" (underscore).
*/
?>
Scripts recomendados
Thumbnails
Mostrar todas as variáveis e valores da variável global $_POST
Normalizador de texto
Gráfico de Pizza em PHP
randomizeStr
Comentários
Muito obrigado pelo script.
Abraços!
Mensagem
Muito obrigado pelo script.
Abraços!
Boa colega, agora veja se pode me ajudar, atualizei a versão do php no meu server, e a nova versão remove as \ que eu coloco sem que eu tenha mudado nada, exceto a propria versão. Tem como configurar para não remover a \.
Mensagem
Boa colega, agora veja se pode me ajudar, atualizei a versão do php no meu server, e a nova versão remove as \ que eu coloco sem que eu tenha mudado nada, exceto a propria versão. Tem como configurar para não remover a \.
Muito bom, sem usar função, isso que eu queria!!
[]'s
Mensagem
Muito bom, sem usar função, isso que eu queria!!
[]'s
acho assim mais facil, saca só:
[code]
function tiraAcento( $str ) {
return strtr(utf8_decode($str),utf8_decode(‘ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ’),’SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy’);
}
[/code]
ve oq vc acha...
Mensagem
acho assim mais facil, saca só:
[code]
function tiraAcento( $str ) {
return strtr(utf8_decode($str),utf8_decode(‘ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ’),’SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy’);
}
[/code]
ve oq vc acha...
A nova versão do PHP dá erro nesse código. Fiz as alterações na função para quem estiver tendo problema. Também removi o "ñ" e o "Ñ".
Segue o exemplo:
[code]
$palavra = "açúcar união";
$palavra = preg_replace("/[^a-zA-Z0-9_]/", "", strtr($palavra, "áàãâéêíóôõúüçñÁÀÃÂÉÊÍÓÔÕÚÜÇÑ ", "aaaaeeiooouucnAAAAEEIOOOUUCN_"));
echo $palavra;
[/code]
No meu caso, eu preciso que também remova os números e aceite espaço no lugar do underline. Caso alguém precise assim também segue o exemplo:
[code]
$palavra = "açúcar união !?@ Ññ ÇÇ";
$palavra = preg_replace("/[^a-zA-Z ]/", "", strtr($palavra, "áàãâéêíóôõúüçñÁÀÃÂÉÊÍÓÔÕÚÜÇÑ", "aaaaeeiooouucnAAAAEEIOOOUUCN"));
echo $palavra // retorna acucar uniao Nn CC
[/code]
PS: Não sei a tag para colocar código fonte, desculpem =/
Mensagem
A nova versão do PHP dá erro nesse código. Fiz as alterações na função para quem estiver tendo problema. Também removi o "ñ" e o "Ñ".
Segue o exemplo:
[code]
$palavra = "açúcar união";
$palavra = preg_replace("/[^a-zA-Z0-9_]/", "", strtr($palavra, "áàãâéêíóôõúüçñÁÀÃÂÉÊÍÓÔÕÚÜÇÑ ", "aaaaeeiooouucnAAAAEEIOOOUUCN_"));
echo $palavra;
[/code]
No meu caso, eu preciso que também remova os números e aceite espaço no lugar do underline. Caso alguém precise assim também segue o exemplo:
[code]
$palavra = "açúcar união !?@ Ññ ÇÇ";
$palavra = preg_replace("/[^a-zA-Z ]/", "", strtr($palavra, "áàãâéêíóôõúüçñÁÀÃÂÉÊÍÓÔÕÚÜÇÑ", "aaaaeeiooouucnAAAAEEIOOOUUCN"));
echo $palavra // retorna acucar uniao Nn CC
[/code]
PS: Não sei a tag para colocar código fonte, desculpem =/
Fala amigo!!
Utilizei somente a conversão dos acentos e funcionou perfeitamente!
Muito obrigado e PARABÉNS!
Mensagem
Fala amigo!!
Utilizei somente a conversão dos acentos e funcionou perfeitamente!
Muito obrigado e PARABÉNS!
Não funciona em UTF-8, a dica do hudyfx funciona :)
Mensagem
Não funciona em UTF-8, a dica do hudyfx funciona :)
Muito Obrigado! Disseminar Informação sempre!!!
Mensagem
Muito Obrigado! Disseminar Informação sempre!!!
vlw ae estava usando um codigo gigantesco. vlw mesmo :)
Mensagem
vlw ae estava usando um codigo gigantesco. vlw mesmo :)
Contribuir com comentário
Enviar