Foros del Web » Programando para Internet » PHP »

Problema con URLs amigables

Estas en el tema de Problema con URLs amigables en el foro de PHP en Foros del Web. Tengo un problema con una expresion regular que redirije un listado, para que el listado funcione debo codificar las variables GET, en vez en formato ...
  #1 (permalink)  
Antiguo 23/03/2010, 12:18
 
Fecha de Ingreso: abril-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Exclamación Problema con URLs amigables

Tengo un problema con una expresion regular que redirije un listado, para que el listado funcione debo codificar las variables GET, en vez en formato ?variable1=valor1&variable2=valor2& ... &variableN=valorN , debo escribirlo como si fuesen directorios, es decir; /variable1-valor1/variable2-valor2/ ... /variableN-valorN

Para ello he preparado una expresion regular, que en teoria deberia sacar las N variables

La expresion regular que utilizo esta en .htacces pero al ver que no funcionaba la he creado en un php para poder testarla.

Para que me podais ayudar os escribo el codigo php necesario

Código PHP:
preg_match('@^/casas/([^/]+)/([^/]+)/([^/]+)(/[^/]+)*$@i''/casas/venta/parcela/ciudalcampo/num-20/orden-precio/sense-ASC'$matches);
var_dump($matches); 
Esto devuelve lo siguiente:

Código PHP:
array(5) {
  [
0]=>
  
string(62"/casas/venta/parcela/ciudalcampo/num-20/orden-precio/sense-ASC"
  
[1]=>
  
string(5"venta"
  
[2]=>
  
string(7"parcela"
  
[3]=>
  
string(11"ciudalcampo"
  
[4]=>
  
string(10"/sense-ASC"

y quiero que me devuelva

Código PHP:
array(5) {
  [
0]=>
  
string(62"/casas/venta/parcela/ciudalcampo/num-20/orden-precio/sense-ASC"
  
[1]=>
  
string(5"venta"
  
[2]=>
  
string(7"parcela"
  
[3]=>
  
string(11"ciudalcampo"
  
[4]=>
  
string(10"/num-20"
  
[5]=>
  
string(10"/orden-precio"
  
[6]=>
  
string(10"/sense-ASC"

muchas gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 23/03/2010, 13:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con URLs amigables

Porque no pruebas mejor con explode()?

Código PHP:
Ver original
  1. $parametros = explode('/', '/casas/venta/parcela/ciudalcampo/num-20/orden-precio/sense-ASC');
  2. // Devuelve:
  3. 0 => '',
  4. 1 => 'casas',
  5. 2 => 'venta',
  6. 3 => 'parcela',
  7. 4 => 'ciudalcampo',
  8. 5 => 'num-20',
  9. 6 => 'orden-precio',
  10. 7 => 'sense-ASC',
  11. );
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: amigables, expresiones, preg_replace, regulares, url, htaccess
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




La zona horaria es GMT -6. Ahora son las 01:15.