Palavra:   

Revista PHP / PHP

Carlos Silva

Desenvolvedor web, certificado ISPA CYCLADES e Macromedia. Desenvolvedor usando as tecnologias C#, JSP, PHP, JavaScript, XML, ABAP, Tableless e outros. Certificado em Segurança da Informação e atualmente trabalhando com ativos de Rede Cisco.

Removendo acentos de String

Bom,

Esse artigo tem como objetivo mostrar uma forma muito usada para remover carateres acentuados de uma determinada string. Entao faremos o seguinte:Pegamos uma string qualquer com acentos, e iremos substituir esses caracteres acentuação pelo seu "equivalente" sem acento.

A função ereg_replace e str_replace será a responsável para isso.

(PHP 3, PHP 4 , PHP 5)
ereg_replace -- Substituição através de expressões regulares

Descrição
string ereg_replace ( string expressao, string substituicao, string variavel )

Essa função busca em variavel resultados para a expressao, substituindo se casar pelo texto em substituicao.

A variavel modificada será retornada (poderá ocorrer da string original ser retornada caso não aconteça nenhuma substituição .)

Você deve perguntar mas porque eu usaria essa opção ?
Resposta é que em alguns casos essa opção é muito usada quando tiver algum cadastro e poderá usar isso no username evitando caratecres invalidos antes do cadastro em banco.

(PHP 3>= 3.0.6, PHP 4 , PHP 5)
str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição

Descrição
mixed str_replace ( mixed pesquisa, mixed substitui, mixed assunto [, int &count] )

PHP
  1. <?php
  2. // Variavel recebendo a string a ser tratada
  3. $var = "Já está na hora de comerçar a programação";
  4. // Variavel recebendo a string que não será tratada para futura comparação
  5. $ant = $var;
  6. // Variavel recebendo a string já fazendo as substituições
  7. $var = ereg_replace("[ÁÀÂÃ]","A",$var);
  8. $var = ereg_replace("[áàâãª]","a",$var);
  9. $var = ereg_replace("[ÉÈÊ]","E",$var);
  10. $var = ereg_replace("[éèê]","e",$var);
  11. $var = ereg_replace("[ÓÒÔÕ]","O",$var);
  12. $var = ereg_replace("[óòôõº]","o",$var);
  13. $var = ereg_replace("[ÚÙÛ]","U",$var);
  14. $var = ereg_replace("[úùû]","u",$var);
  15. $var = str_replace("Ç","C",$var);
  16. $var = str_replace("ç","c",$var);
  17. // Listando o resultado anterior sem substituição
  18. echo "Resultado anterior: ".$ant."\n";
  19. // Listando o resultado com a subtituição
  20. echo "Resultado posterior: ".$var."\n";
  21. ?>
www.revistaphp.com.br

Após a execução repare o antes e depois

Resultado anterior: Já está na hora de comerçar a programação
Resultado posterior: Ja esta na hora de comercar a programacao

Abraços e até.

Opções de Interação

Comentários

Solução com os Enconding Types
Por: Marco, 29/08/2008   14:39:03
Se você estiver tendo problemas com os Encoding Types, é fácil resolver com htmlentities e um pouco de regular expression: eu criei um post sobre a função que uso:

http://filosofiadevida.marcocarvalho.com/removendo-acentos-strings-php-enconding/