Removendo acentos de uma string – URLs amigáveis - Jonathas
Jonathas Guerra	8 anos ago 2	6 K
Essa função é muito útil quando queremos trabalhar com URLs amigáveis e precisamos passar o slug (versão sem acento, espaço e caracteres especiais de uma string) para uma URL.
Veja como é simples usar a função:
// Apenas remove os acentos
echo removeAcentos(' [Resolvido] » Problemas na conversão de página html');
// [resolvido] » problemas na conversao de pagina htm
// Cria um slug da string
echo removeAcentos(' [Resolvido] » Problemas na conversão de página html', '-');
// resolvido-problemas-na-conversao-de-pagina-html
O segundo parâmetro da função é o caractere que será usado no slug substituindo espaços e caracteres especiais.
Vamos ao código da função:
Como vocês podem ver, no começo da função, entre as linhas 9 e 21 é onde definimos os códigos ASCII de cada acento/caractere especial que será convertido por sua letra… Depois nós rodamos um foreach e montamos as ERs (expressões regulares) para a substituição e fazemos toda a troca.
A vantagem de usar o código ASCII de cada caractere é que não importa em qual codificação seu arquivo está salvo, ela vai funcionar!
Caso você queira fazer a substituição em strings com mais de uma linha você precisa trocar onde tem "/i" por "/mi" nas linhas 26, 34 e 36.
Update: Se a sua string estiver codificada em UTF-8 você precisa usar a utf8_decode() antes de passar a string pra função.