Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou com um erro que não consigo resolver.
A programação resolve o problema de retirar todas as acentuações, porém esta com problema e sempre tem erros quando coloco-a...
function RetirarAcentos($var) {
$var = strtolower($var);
$var = ereg_replace("[áàâãªÁÄÀÃÂ]","a",$var);
$var = ereg_replace("[éèêëÉËÈÊ]","e",$var);
$var = ereg_replace("[íïìîÍÏÌÎ]","i",$var);
$var = ereg_replace("[óòôõºÓÖÒÕÔ]","o",$var);
$var = ereg_replace("[úùûÚÜÙÛ]","u",$var);
$var = ereg_replace("[çÇ]","c",$var);
return $var;
}
echo RetirarAcentos('Agora eu sei que é um teste, não vou negóciar com vocês, pois ítens foram roubados e vamos caçar.');
// agora eu sei que ae um teste, naao vou negaociar com vocaas, pois aitens foram roubados e vamos caacar.
// agora eu sei que e um teste, nao vou negociar com voces, pois itens foram roubados e vamos cacar.
* Ele não ta fazendo direito, dando muitos erros, como posso resolver pessoal?
Alguém pode ajudar?
valeu! :thumbsup:
// Código ASCII das vogais
$ascii['a'] = range(224, 230);
$ascii['e'] = range(232, 235);
$ascii['i'] = range(236, 239);
$ascii['o'] = array_merge(range(242, 246), array(240, 248));
$ascii['u'] = range(249, 252);
// Código ASCII dos outros caracteres
$ascii['b'] = array(223);
$ascii['c'] = array(231);
$ascii['d'] = array(208);
$ascii['n'] = array(241);
$ascii['y'] = array(253, 255);
foreach ($ascii as $key=>$item) {
$acentos = '';
foreach ($item AS $codigo) $acentos .= chr($codigo);
$troca[$key] = '/['.$acentos.']/i';
}
$string = preg_replace(array_values($troca), array_keys($troca), $string);Já respondi alguém com essa função mas não consegui achar:
function remove_acentos($str) {
// Separa o ascento da letra
$str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
// Remove tudo que não seja caractere alfabético ou espaço em branco
$str = preg_replace("/[^[:alpha:]\s\.,]/i", "", $str);
/* Se você quiser preservar outro caractere, basta colocá-lo antes do ']'
Se quiser remover o espaço em branco, remova o '\s' antes de ']'
*/
return $str;
}
function remove_caracteres_repetidos($str) {
return preg_replace("/(.)\\1+/", "$1", $str);
}
$str = "agora eu sei que ae um teste, naao vou negaociar com vocaas, pois aitens foram roubados e vamos caacar.";
$str = remove_acentos($str);
$str = remove_caracteres_repetidos($str);
echo $str;
Saída:
agora eu sei que ae um teste, nao vou negaociar com vocas, pois aitens foram roubados e vamos cacar.
Não é ainda a saída que você quer, pois o que você precisa é de um corretor ortográfico, mas para fazer um é necessário uma biblioteca como ASPELL.
http://forum.imasters.com.br/topic/304199-funcoes-que-corrige-acentos/page__p__1119114#entry1119114