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
Mostrar Status do ICQ na Web
Data por Extenso
Saber se acesso a aplicação web é feito pela rede interna ou externa
Lista de Tarefas - Gerenciador de Projeto Simples
Banners rotativos simples
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