PHP - Remover acentos e caracteres especiais

Publicado por Leandro Alexandre ® 06/01/2009

[ Hits: 130.339 ]

Download remover_acentos.php




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

Fast Template CVS Revision 1.2.2

Converte para maiúsculas a primeira letra de cada palavra, resolvendo o problema de acentos

mascaras PHP/JavaScript

Script para noticias no formato rss

Classe comboBox


  

Comentários
[1] Comentário enviado por leandroisola em 03/01/2011 - 15:00h

Parabéns me ajudou muito


Leandro
www.mundoconectado.net

[2] Comentário enviado por mtarroyo em 05/02/2011 - 10:06h

Muito obrigado pelo script.

Abraços!

[3] Comentário enviado por tiekookeit em 29/03/2012 - 10:35h

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 \.

[4] Comentário enviado por rodrigokx em 10/05/2012 - 10:57h

Muito bom, sem usar função, isso que eu queria!!

[]'s

[5] Comentário enviado por hudyfx em 14/05/2012 - 23:10h

acho assim mais facil, saca só:

[code]
function tiraAcento( $str ) {
return strtr(utf8_decode($str),utf8_decode(‘ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ’),’SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy’);
}
[/code]

ve oq vc acha...

[6] Comentário enviado por Diogo Leal em 16/05/2012 - 12:34h

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 =/

[7] Comentário enviado por netotjb em 11/09/2012 - 20:27h

Fala amigo!!
Utilizei somente a conversão dos acentos e funcionou perfeitamente!
Muito obrigado e PARABÉNS!

[8] Comentário enviado por fabaopaiva em 22/08/2013 - 14:28h

Não funciona em UTF-8, a dica do hudyfx funciona :)

[9] Comentário enviado por miqueiaspenha em 29/04/2014 - 10:39h

Muito Obrigado! Disseminar Informação sempre!!!

[10] Comentário enviado por prns777 em 23/06/2015 - 05:54h


vlw ae estava usando um codigo gigantesco. vlw mesmo :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts