Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Função que gera uma texto limpo pra virar URL:
Fonte: Função Limpa texto pra virar URL (urls amigáveis).
Muito útil quando trabalhamos com url amigáveis (friendly url):
- limpa acentos e transforma em letra normal
- limpa cedilha e transforma em c normal, o mesmo com o ñ
- transforma espaços em underline (_)
- tira caracteres invalidos
Por exemplo, temos o texto
"O cabeçudo & a máfia é ônti. O cabeçudo & a máfia é ônti.htm"
Que queremos que vire a url
"o-cabecudo-a-mafia-e-onti-o-cabecudo-a-mafia-e-onti.htm"
1) Pegue esta minha função
function geraUrlLimpa($texto){ /* função que gera uma texto limpo pra virar URL: - limpa acentos e transforma em letra normal - limpa cedilha e transforma em c normal, o mesmo com o ñ - transforma espaços em hifen (-) - tira caracteres invalidos by Micox - elmicox.blogspot.com */ //desconvertendo do padrão entitie (tipo á para á) $texto = html_entity_decode($texto); //tirando os acentos $texto = eregi_replace('[aáàãâä]','a',$texto); $texto = eregi_replace('[eéèêë]','e',$texto); $texto = eregi_replace('[iíìîï]','i',$texto); $texto = eregi_replace('[oóòõôö]','o',$texto); $texto = eregi_replace('[uúùûü]','u',$texto); //parte que tira o cedilha e o ñ $texto = eregi_replace('[ç]','c',$texto); $texto = eregi_replace('[ñ]','n',$texto); //trocando espaço em branco por underline $texto = eregi_replace('( )','-',$texto); //tirando outros caracteres invalidos $texto = eregi_replace('[^a-z0-9\-]','',$texto); //trocando duplo espaço (hifen) por 1 hifen só $texto = eregi_replace('--','-',$texto); return strtolower($texto);}2) Chame a função
$tes = "O cabeçudo & a máfia é ônti. O cabeçudo & a máfia é ônti"; $tes = geraUrlLimpa($tes)."htm"; echo $tes."<br />"; //irá gerar o-cabecudo-a-mafia-e-onti-o-cabecudo-a-mafia-e-onti.htmDúvidas, pergunte ae.caro colega não entendi como montar
veja meu .htacess e o site para ver que acontence com ç www.playjogos.com.br
RewriteEngine On
#turn on the Rewrite engine, if it's not already active
#set the base directory to /
RewriteBase /
RewriteRule ^games/ games.php [L]
RewriteRule ^game/ game.php [L]
Olá, minha função não faz o serviço que o htaccess faz, ela apenas te ajuda a montar como será o link.
Exemplificando fica melhor entender.
Digamos que eu tenho uma notícia cujo ID é 432 e título é 'Fumo destrói o pulmão'.
Sem url amigáveis, um tipo de link provável poderia ser:
www.seu_servidor.com/noticia.php?id=432
COM url amigáveis você pode melhorar isto aí para
www.seu_servidor.com/noticia/432/titulo-da-noticia
sendo que 'titulo-da-noticia', muitas vezes pode ter acentos, cedilhas, etc.
Minha função apenas limpa este título pra que ele não tenha ests acentos ou cedilhas.
espero que tenha entendido http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
obrigado pelo retorno, ficou claro sim, agora minha pergunta é:
onde coloca este codigo onde faço a chamada do script?
desde já muito obrigado
Você irá colocar na hora em que for montar algum link pra apontar para a página tal.
Na hora da montagem do link você usa isso aí.
tipo:
$id_noticia = getIdNoticiaFromBD();
$titulo = getTituloFromBD($id_noticia);
echo "<a href='[http://www.servidor.com/noticia/$id_noticia/".geraUrlLimpa($titulo)."'>";](http://www.servidor.com/noticia/%24id_noticia/)Micox,
Onde esta a essa função getIdNoticiaFromBD() ?
hehe, aí é você quem faz ela meu cumpadi. hehe.
O que eu mostrei aí foi só um exemplo pra você entender :)
Estava precisando de uma função dessas! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
eh..olha so oq da AS VEZES em minha pagina, nao eh direto:
Warning: mb_eregi_replace() [function.mb-eregi-replace]: mbregex compile err: premature end of char-class in /home/xxx/public_html/libs/texto_limpo.php on line 21
pq isso? ai dou f5 e volta ao normal...dps de um tempinho volta a aparecer
=/
a funcao eh
function texto_limpo($texto) {
//desconvertendo do padrão entitie (tipo á para á)
$texto = html_entity_decode($texto);
//tirando os acentos
$texto = eregi_replace('[aáàãâ]','a',$texto);
$texto = eregi_replace('[eéèê]','e',$texto);
$texto = eregi_replace('[iíìî]','i',$texto);
$texto = eregi_replace('[oóòõô]','o',$texto);
$texto = eregi_replace('[Úuúùû]','u',$texto);
//parte que tira o cedilha e o ñ
$texto = eregi_replace('[ç]','c',$texto);
$texto = eregi_replace('[ñ]','n',$texto);
//trocando espaço em branco por underline
$texto = eregi_replace('( )','-',$texto);
//tirando outros caracteres invalidos
$texto = eregi_replace('[^a-z0-9\-]','',$texto);
//trocando duplo espaço (hifen) por 1 hifen só
$texto = eregi_replace('--','-',$texto);
//$texto = str_replace("-", "_", $texto);
return strtolower($texto);
}ele sempre repete a letra a
Exemplo: o-cabeacudo-a-maafia-ae-aonti-o-cabeacudo-a-maafia-ae-aonti
Rodney.
legal!!no coments...^^