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.

publicidade

1 Comentário

  1. Marco Carvalho comentou:

    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/

Não fiques aí parado como um burro a olhar para um palácio, deixa o teu comentário

 
Últimos artigos publicados
publicidade
 

publicidade
publicidade