Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ronza

[Resolvido] banco de dados e Url amigavel

Recommended Posts

Pessoal eu salvo os nomes em meu banco de dados "Dessa Forma", com espaço mesmo.

 

O meu código de url amigável no .htaccess tá assim:

 

RewriteRule ^exemplo/([a-z0-9-]+)/([0-9]+)/?$ /exemplo.php?id=$2&nome=$1 [NC]

 

Só que não ta funcionado..

 

Alguém sabe o porque?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim interpretador?

 

eu resgato na página o id no banco de dados com GET.

 

$id = $_GET['id'];

 

 

$sql = "SELECT * FROM exemplo WHERE id = '$id'";

$qr = mysql_query($sql) or die (mysql_error());

 

 

A url normal é assim: www.meusite.com.br/exemplo.php?id=18

 

e eu queria que ficasse assim: www.meusite.com.br/exemplo/nome/id

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ta funcionando, acho que era só esperar um pouco!

 

Só que ainda tem o problema do banco de dados..

 

Se escrever a url vai normal, pq onde tem espaço é só colocar traço.

 

Só que quando eu resgato o valor por php no link, aí não da certo, pq o nome vai errado sem os traços, com espaço no lugar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você poderia me mandar um exemplo de str_replace, pra eu ver como funciona?

 

Tem outros problemas também, como: acentuação e Ç.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na proxima tente utilzar o pesquisar *-*

 

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 hífen(-)
       - tira caracteres invalidos
       */
       //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 (underline) por 1 underline só
       $texto = eregi_replace('--','-',$texto);

       return strtolower($texto);
}

 

exemplo:

 

$texto = "Oi essa função é bacana";

echo geraUrlLimpa($texto);

//saida

oi-essa-funcao-e-bacana

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.