
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' => '/À|Á|Â|Ã|Ä|Å/',
'a' => '/à|á|â|ã|ä|å/',
'C' => '/Ç/',
'c' => '/ç/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ|Ö/',
'o' => '/ò|ó|ô|õ|ö/',
'U' => '/Ù|Ú|Û|Ü/',
'u' => '/ù|ú|û|ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'a.' => '/ª/',
'o.' => '/º/');
return preg_replace($acentos,
array_keys($acentos),
htmlentities($str,ENT_NOQUOTES, $enc));
}
?>
Me siga no Twitter para ficar informado sobre o blog.

