Pular para o conteúdo

PHP - Remover acentos e caracteres especiais

PHP - Remove acentos e caracteres especiais.
Leandro Alexandre ® le-unix
Hits: 131.265 Categoria: PHP Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

PHP - Remove acentos e caracteres especiais.
Download remover_acentos.php Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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).
   */
?>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Hora no formato Internet Beat

Mostrar todas as variáveis e valores da variável global $_POST

Thumbnails

SysCheques

Graficos 3D simples e configuraveis com PHP

#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ó:


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


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:


$palavra = "açúcar união";
$palavra = preg_replace("/[^a-zA-Z0-9_]/", "", strtr($palavra, "áàãâéêíóôõúüçñÁÀÃÂÉÊÍÓÔÕÚÜÇÑ ", "aaaaeeiooouucnAAAAEEIOOOUUCN_"));
echo $palavra;


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:


$palavra = "açúcar união !?@ Ññ ÇÇ";
$palavra = preg_replace("/[^a-zA-Z ]/", "", strtr($palavra, "áàãâéêíóôõúüçñÁÀÃÂÉÊÍÓÔÕÚÜÇÑ", "aaaaeeiooouucnAAAAEEIOOOUUCN"));
echo $palavra // retorna acucar uniao Nn CC


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

Entre na sua conta para comentar.