Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/11/2010, 10:23
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
preg_replace: reemplazar valor de parámetro en querystring

Hola, tengo una url de la forma:

Código:
/lista_usuarios.php?pg=1 

o bien

/lista_usuarios.php?param=0&pg=1&mas_param=0
Y la quiero cambiar por:

Código:
/lista_usuarios.php?pg=2

o bien

/lista_usuarios.php?param=0&pg=2&mas_param=0
En definitiva, quiero modificar el valor del parámetro pg del querystring.

Utilizo preg_replace, pero no consigo dar con el patrón de reemplazo adecuado.

Tengo

Código PHP:
Ver original
  1. $url = "/lista_usuarios.php?param=0&pg=1&mas_param=0";
  2.    
  3.     $patron = "#(\?pg=|\&pg=)(\d)#i";
  4.     preg_match($patron, $url, $new_url);
  5.    
  6.     echo "0: " .$new_url[0]."<br>";
  7.     echo "1: " .$new_url[1]."<br>"; /*AQUI ESTA &PG=*/
  8.     echo "2: " .$new_url[2]."<br>"; /*AQUI ESTA EL VALOR DE PG*/
  9.  
  10.     $reemplazo = '$1NUEVO_VALOR';
  11.     $url2 = preg_replace($patron, $reemplazo, $url);
  12.  
  13.     echo $url2."<br>";

Si NUEVO_VALOR es un string, hace el reemplazo bien, pero como debe ser un valor numérico, si pongo "$12" no se si lo toma como el número doce o qué debo poner para que tome el número 2 asociado al patrón $1.

Gracias