Como remover acentos e pontuação com PHP.
Com a utilização massiça dos friendly url’s e conversão de titulos de artigos para url’s, muito visto nos blogs, tenho visto alguns sites que o fazem de forma menos correcta por não converterem os acentos e pontuação para caracteres sem acentos e com isso os url’s além de ficarem impossíveis de memorizar não ajudam na indexação.
Para isto criei uma pequena função em PHP que converte qualquer string com acentos e pontuação numa string sem acentos e pontuação, o truque aqui é que não há tabelas de correspondência nem acentos no código e portanto independente do encoding do servidor o script deverá funcionar correctamente.
Aqui fica o código fonte:
function normalizarString ($s = '')
{
$str = htmlentities($s);
$str = preg_replace("/(&)([a-z])([a-z]+;)/i", '$2', $str);
$str = preg_replace("/[^A-Z0-9]/i", ' ', $str);
$str = preg_replace("/\s+/i", ' ', $str);
$str = trim($str);
return $str;
}
?>
Espero que vos seja útil nos vossos projectos.
2008-08-29 20:42
Putz.. muito melhor que o código que eu fiz…
Mas o princípio é o mesmo, quem quiser tá lá: http://filosofiadevida.marcocarvalho.com/removendo-acentos-strings-php-enconding/