Remover Acentuação e Caracteres Especiais com PHP

1 Comentário 13 janeiro 2010

 
Trabalhar com PHP em português não é uma tarefa das mais simples. Isso porque no inglês, a linguagem nativa do PHP, não existem acentos e caracteres especiais como o ç ou ü.

Trabalhar com PHP em português não é uma tarefa das mais simples. Isso porque no inglês, a linguagem nativa do PHP, não existem acentos e caracteres especiais como o ç ou ü. Isso deixa qualquer louco da vida!

Trabalhar com PHP em português não é uma tarefa das mais simples. Isso porque no inglês, a linguagem nativa do PHP, não existem acentos e caracteres especiais como o ç ou ü.

De modo que é uma tarefa ingrata muitas vezes para os programadores brasileiros e portugueses criar qualquer tipo de aplicação ou fazer uma integração do site do cliente com uma outra aplicação qualquer devido a incompatibilidade de codificação.

Quando não se está usando utf-8, basta usar esta função que seus problemas estarão resolvidos:

 
<?php
//retirar acentuação
function remover($a){
$a = eregi_replace("[àáâäã]","a",$a);
$a = eregi_replace("[èéêë]","e",$a);
$a = eregi_replace("[ìíîï]","i",$a);
$a = eregi_replace("[òóôöõ]","o",$a);
$a = eregi_replace("[ùúûü]","u",$a);
$a = eregi_replace("[ÀÁÂÄÃ]","A",$a);
$a = eregi_replace("[ÈÉÊË]","E",$a);
$a = eregi_replace("[ÌÍÎÏ]","I",$a);
$a = eregi_replace("[ÒÓÔÖÕ]","O",$a);
$a = eregi_replace("[ÙÚÛÜ]","U",$a);
$a = eregi_replace("ç","c",$a);
$a = eregi_replace("Ç","C",$a);
$a = eregi_replace("ñ","n",$a);
$a = eregi_replace("Ñ","N",$a);
$a = str_replace("´","",$a);
$a = str_replace("`","",$a);
$a = str_replace("¨","",$a);
$a = str_replace("^","",$a);
$a = str_replace("~","",$a);
return $a;}
?>

Contudo, quando se está usando utf-8 a função acima não funcionará e você terá problemas. Por esta razão, a função abaixo criada pelo Marco Carvalho deverá ser usada nesses casos.

<?php
function remover($str, $enc = "UTF-8"){

$acentos = array(
'A' => '/&Agrave;|&Aacute;|&Acirc;|&Atilde;|&Auml;|&Aring;/',
'a' => '/&agrave;|&aacute;|&acirc;|&atilde;|&auml;|&aring;/',
'C' => '/&Ccedil;/',
'c' => '/&ccedil;/',
'E' => '/&Egrave;|&Eacute;|&Ecirc;|&Euml;/',
'e' => '/&egrave;|&eacute;|&ecirc;|&euml;/',
'I' => '/&Igrave;|&Iacute;|&Icirc;|&Iuml;/',
'i' => '/&igrave;|&iacute;|&icirc;|&iuml;/',
'N' => '/&Ntilde;/',
'n' => '/&ntilde;/',
'O' => '/&Ograve;|&Oacute;|&Ocirc;|&Otilde;|&Ouml;/',
'o' => '/&ograve;|&oacute;|&ocirc;|&otilde;|&ouml;/',
'U' => '/&Ugrave;|&Uacute;|&Ucirc;|&Uuml;/',
'u' => '/&ugrave;|&uacute;|&ucirc;|&uuml;/',
'Y' => '/&Yacute;/',
'y' => '/&yacute;|&yuml;/',
'a.' => '/&ordf;/',
'o.' => '/&ordm;/');

   return preg_replace($acentos,
                       array_keys($acentos),
                       htmlentities($str,ENT_NOQUOTES, $enc));
}
?>

Me siga no Twitter para ficar informado sobre o blog.

Outros Posts

Tags: , , , , , ,

- escreveu 359 artigos em Brasil PHP.

Sou administrador de empresas, programador PHP, desenvolvedor web, marketeiro digital e me considero um problogger. Sou o editor do Brasil PHP e meu principal objetivo é levar conteúdos únicos e altamente relevantes para os leitores do blog. Aqui são abordados assuntos como criação de sites, monetização, programação PHP, SEO, Guias Comerciais, Classificados etc.

Entre em contato com o autor

Seus Comentários

1 comentário

  1. Perdi HORAS tentando corrigir o problema de acentos com UTF-8. Você é O CARA!! Valeu mesmo!!

    Legal ou Bobagem: Positivo 4 Negativo 2





Comentadores

© 2009/2012 Brasil PHP - Feito com Wordpress - Política de Privacidade -

Tema por Woo Themes