micox 2 Denunciar post Postado Outubro 9, 2007 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. Compartilhar este post Link para o post Compartilhar em outros sites
_M!K0L_ 1 Denunciar post Postado Outubro 11, 2007 legal!!no coments...^^ Compartilhar este post Link para o post Compartilhar em outros sites
Dorian Cosentino 0 Denunciar post Postado Novembro 7, 2007 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 / # now the rewriting rules RewriteRule ^games/ games.php [L] # now the rewriting rules RewriteRule ^game/ game.php [L] Compartilhar este post Link para o post Compartilhar em outros sites
micox 2 Denunciar post Postado Novembro 7, 2007 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 Compartilhar este post Link para o post Compartilhar em outros sites
Dorian Cosentino 0 Denunciar post Postado Novembro 8, 2007 obrigado pelo retorno, ficou claro sim, agora minha pergunta é: onde coloca este codigo onde faço a chamada do script? desde já muito obrigado Compartilhar este post Link para o post Compartilhar em outros sites
micox 2 Denunciar post Postado Novembro 14, 2007 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)."'>"; Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Martins - SC 0 Denunciar post Postado Fevereiro 27, 2008 Micox, Onde esta a essa função getIdNoticiaFromBD() ? Compartilhar este post Link para o post Compartilhar em outros sites
micox 2 Denunciar post Postado Março 7, 2008 hehe, aí é você quem faz ela meu cumpadi. hehe. O que eu mostrei aí foi só um exemplo pra você entender :) Compartilhar este post Link para o post Compartilhar em outros sites
nknk 3 Denunciar post Postado Março 7, 2008 Estava precisando de uma função dessas! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
gmps 0 Denunciar post Postado Abril 4, 2008 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); } Compartilhar este post Link para o post Compartilhar em outros sites
Rodney3400 0 Denunciar post Postado Abril 17, 2008 ele sempre repete a letra a Exemplo: o-cabeacudo-a-maafia-ae-aonti-o-cabeacudo-a-maafia-ae-aonti Rodney. Compartilhar este post Link para o post Compartilhar em outros sites