PHP - Remover acentos e caracteres especiais

Publicado por Leandro Alexandre ® 06/01/2009

[ Hits: 130.408 ]

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

Hosting Control

Criando um menu de paginação de resultados com algumas funcionalidades

Criando um menu de paginação de resultados com algumas funcionalidades

Agenda de contatos PHP

Leitor de RSS


  

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