Foros del Web » Programando para Internet » PHP »

url amigables con guion medio

Estas en el tema de url amigables con guion medio en el foro de PHP en Foros del Web. hola actualemten tengo mi url asi con la funcio php Código PHP: str_replace  www.dominio.com/anuncio/balones+verdes+1/ poniendo esto en .htaccess RewriteRule ^anuncio/(.+)(.+)/$ /anuncio.php?ads=$1&id=$2 [L] no logro hacer ...
  #1 (permalink)  
Antiguo 17/04/2011, 19:00
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Busqueda url amigables con guion medio

hola actualemten tengo mi url asi

con la funcio php
Código PHP:
str_replace 
www.dominio.com/anuncio/balones+verdes+1/

poniendo esto en .htaccess

RewriteRule ^anuncio/(.+)(.+)/$ /anuncio.php?ads=$1&id=$2 [L]

no logro hacer que en ves del signo de (+) quede el (-) ps al variar de la ^anuncio/(.+)(.+)/ a ^anuncio/(.-)(.-)/ no da nada no se que se le deba poner por eso acudo a ustedes muchas gracias
  #2 (permalink)  
Antiguo 17/04/2011, 19:46
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Respuesta: url amigables con guion medio

Sera algo asi??

Código Apache:
Ver original
  1. RewriteRule ^anuncio/(.*)-(.*)/$ /anuncio.php?ads=$1&id=$2 [L]
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #3 (permalink)  
Antiguo 17/04/2011, 21:31
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: url amigables con guion medio

amigo gracias lo que tu propones no me da

la idea es q la url

www.dominio.com/anuncio/balones-verdes-1/

con el guion (-)
  #4 (permalink)  
Antiguo 17/04/2011, 22:04
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: url amigables con guion medio

lo que pasa es que no sabes lo que estas haciendo.

esto:

^anuncio/(.+)(.+)/$

quiere decir lo siguiente

^anuncio = empieza con "anuncio"
/ = slash que divide las variables
(.+) = esto captura las variables, nada que ver con que pongas signos de mas o guiones medios.
/$ = esto es que tiene que terminar con slash la url

para que te dé como quieres solo es esto:

^anuncio/(.+)/$

es casi como dijo el compañero solo que en vez de los .* a ti te sirven los .+ no se por que pero a mi tambien me pasa, y lo que quieren decir los .+ entre parentesis es que capturan todo lo que este despues de anuncio/ y antes de /
aqui el problema es que tienes que separar las variables con varios guiones por eso no identifica cada valor pasado por get.

si tú pones esta regla en tu .htaccess

RewriteRule ^anuncio/(.+)/(.+)/$ anuncio.php?ads=$1&id=$2 [L,QSA]

y en tu archivo anuncios.php escribes esto:

Código PHP:
Ver original
  1. echo $_GET['ads'];
  2. echo "<br/>";
  3. echo $_GET['id'];

y en tu url escribes esto:

www.dominio.com/anuncio/balones-verdes/1/

obtendrás esto:

balones-verdes
1

lo que indica que si toma las variables, ponerlo como tu quieres siendo dos variables, no es viable o por lo menos no s me ocurre nada, es mejor separar cada variable con un slash.
  #5 (permalink)  
Antiguo 17/04/2011, 22:57
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: url amigables con guion medio

memoadian gracias pero entonces que dejo hacer?

poner una variable?????

^anuncio/(.+)/$

www.dominio.com/anuncio/balones-verdes/ ??

o como disculpa para soy algo novato en esto y ps le dado vuelta a esto y aun nada pero creo q estoy cerca
  #6 (permalink)  
Antiguo 17/04/2011, 23:09
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: url amigables con guion medio

pues eso depende de lo que quieras obtener via get, si tu consigues tus resultados en una consulta por ejemplo

Código MySQL:
Ver original
  1. SELECT * FROM articulos WHERE articulo = ".$articulo";

y en esa variable quieres que te consulte todos los "balones-verdes";

entonces si es una sola variable
Código Apache:
Ver original
  1. ^anuncio/(.+)/$ anuncios.php?art=$1 [L,QSA]

Código PHP:
Ver original
  1. $articulo = $_GET['art'];

pero a lo mejor tu consulta estaria mejor asi

Código MySQL:
Ver original
  1. SELECT * FROM articulos WHERE articulo = ".$articulo." AND color = ".$color.";
entonces capturarias dos variables

Código Apache:
Ver original
  1. ^anuncio/(.+)/(.+)/$ anuncios.php?art=$1&color=$2 [L,QSA]
Código PHP:
Ver original
  1. $articulo = $_GET['art'];
  2. $color = $_GET['color'];

con eso te respondo y si eres buso, entenderás el concepto de las urls amigables perfectamente.
  #7 (permalink)  
Antiguo 17/04/2011, 23:28
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: url amigables con guion medio

ps lo que obtengo con el get son dos variables una el nombre ads y el otro el id entonces seria tu 2 opción.

la cuestión es que yo utilizo la función str_replace para que los espacio en blanco del nombre ads se reemplacen por guión (-) hay esta la cuestión ps en la base de datos esta "balones verdes" y con la función queda "balones-verdes-" entonces la duda mia es como le haga para que se ponga en la url balones-verdes este se traduzca como balones verdes como esta en la base de datos espero me entiendas y colabores jejeje gracias


an visto la url del foro como lo hacen???

http://www.forosdelweb.com/f18/url-a...-medio-904996/

segun veo casi tiene lo mismo que yo quiero

anuncio/nombre-del-post/id/

Última edición por servidigital; 17/04/2011 a las 23:45
  #8 (permalink)  
Antiguo 18/04/2011, 00:30
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: url amigables con guion medio

ya veo...

...como lo tienen aqui deberia ser algo así:
Código Apache:
Ver original
  1. RewriteRule ^anuncio/(.+)-(.+)/$ anuncio.php?art=$1&id=$2 [L,QSA]

con esto debiera tomaral ultimo guión medio como el parametro para separar al id y con esto:

http://localhost/anuncio/balones-verdes-1/

se traduce en esto en tu script

balones-verdes
1

str_replace solo debe hacer esto:

Código PHP:
Ver original
  1. $phrase = $_GET['art'];
  2. $phrase = str_replace("-", " ", $phrase);
  3.  
  4. echo $phrase;
  5. echo "<br/>";
  6. echo $_GET['id'];

creo que si te doy más tendrías que pagarme

Última edición por memoadian; 18/04/2011 a las 01:01
  #9 (permalink)  
Antiguo 18/04/2011, 08:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: url amigables con guion medio

según com veo la mejor opcion es que guardes en tu base de datos balones-verdes- y luego cuando vallas a mostrado en pantalla utilizas la funcion str_replace
__________________
sitios
www.avisoya.com
www.yavendi.com
  #10 (permalink)  
Antiguo 18/04/2011, 09:35
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: url amigables con guion medio

pero el asunto es que si guado en la base de datos de esta manera con el guion medio (-) todas las veces q desee mostrarlos debo aplicar la función str_replace??

hay alguna otra manera para q al poner un la url los guiones por los espcios funciones
gracias
  #11 (permalink)  
Antiguo 18/04/2011, 15:58
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: url amigables con guion medio

pues ya te dije arriba como hacerlo ¬¬
  #12 (permalink)  
Antiguo 18/04/2011, 18:53
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años
Puntos: 8
Respuesta: url amigables con guion medio

memoadian esa es la manera correcta?? guardar en la bd el titulo con los guiones medio y luego quitarselos con la funcion str_replace
  #13 (permalink)  
Antiguo 19/04/2011, 03:23
 
Fecha de Ingreso: febrero-2011
Ubicación: cali, valle del cauca
Mensajes: 158
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: url amigables con guion medio

Cita:
Iniciado por memoadian Ver Mensaje
pues ya te dije arriba como hacerlo ¬¬
Gracias a Dios no tengo problema en como hacerlo, pero me toca cambiar a cada url por el nopmbre del anuncio, entonses como hago ahi? para saver el nombre d cada quien?
  #14 (permalink)  
Antiguo 19/04/2011, 10:15
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: url amigables con guion medio

Cita:
Iniciado por servidigital Ver Mensaje
memoadian esa es la manera correcta?? guardar en la bd el titulo con los guiones medio y luego quitarselos con la funcion str_replace
como vas a hacer eso?, es exactamente al revés, en mi caso para pasar del GET a mi base de datos hago esto

------------------------------------------|
nombre-----------| url----------------|
--------------------+---------------------|
balones verdes | balones-verdes

por poner un ejemplo
aunque en tu caso no es lo mejor

de ahi se obtiene la variable por GET que seria "balones-verdes" y buscas por ese termino, si no quieres el guin en la funcion str_replace que te dejé sustituyes los guienes medios por espacios en blanco, pero la verdad no se cual es tu objetivo yo paso por GET cosas muy puntuales, si lo que tienes es una busqueda deberias usar POST.

Etiquetas: amigables, medio, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:16.