Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Depois de quebrar a cabeça um pouco e passar várias horas de pesquisa finalizei a seguinte função:
<?php
function seoUrl($str){
$str = strtolower($str); // tudo 'lowercase'
$a = array('à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ý','ý','þ','ÿ','/','\\','.','_',' ',"\n","'","=",'+');
$b = array('a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','u','y','b','s','a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','y','y','b','y','-','-','-','-','-','-','-','-','-',);
$str2 = str_ireplace($a, $b, $str); // substitue $a por $b
$str3 = preg_replace('/[^a-zA-Z0-9_ -]/s', '', $str2); // remove tudo que não é de a-z ou 0-9 exceto '_' e '-'
$str4 = preg_replace('/-{2,}/s', '-', $str3); // so permite um '-' por vez
$str5 = trim(trim(trim($str4),'_'),'-'); // corta das pontas sobras de '-','_' e ' '
return $str5; // retorna a string
}
?>
Nessa função é possivel filtrar strings para apartir delas criar "SEO URLs".
Ex: de "Grêmio x Cruzeiro: duas lideranças em jogo neste domingo no Olímpico! g&H¨ %$%C ¨%V (&B(" a função retorna "gremio-x-cruzeiro-duas-liderancas-em-jogo-neste-domingo-no-olimpico-gh-c-v-b"
A função tem suporte para filtrar caractéries de várias linguas mas quero ver se consigo aprimorar ela ainda mais.
Alguma observação?
Abraço.
Carregando comentários...