Foros del Web » Programando para Internet » PHP »

Limitar expresión regular

Estas en el tema de Limitar expresión regular en el foro de PHP en Foros del Web. Hola compañeros, estoy haciendo una clase de paginación y necesito eliminar de los parámetros pasados por url la página anteriormente pasada para añadir la nueva. ...
  #1 (permalink)  
Antiguo 11/07/2012, 17:02
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 9 años, 11 meses
Puntos: 4
Limitar expresión regular

Hola compañeros,

estoy haciendo una clase de paginación y necesito eliminar de los parámetros pasados por url la página anteriormente pasada para añadir la nueva.

La idea es buscar la variable pagina con su correspondiente valor y eliminarlo, por ejemplo:
?pagina=23
?pagina=1&var=a
?var=a&pagina=1
?pagina=e&var=1

Estoy usando el delimitador $ para que pare al encontrar un & por la parte trasera pero no me lo hace, lo ignora. Este es el patrón que llevo creado hasta el momento:

Código PHP:
preg_replace('/[?|&]{0,}pagina=[/S&$]{0,}/i'''$url); 
Un saludo
  #2 (permalink)  
Antiguo 11/07/2012, 17:10
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 9 años, 11 meses
Puntos: 4
Respuesta: Limitar expresión regular

Pensaba que el fallo estaba en que lo hacía de forma recursiva al aplicar {0,} en el patrón [/S&$] pero tampoco es así, me ignora el &$ que debería parar en el primer & pero no lo hace, lo borra todo hasta el último &

Última edición por erxaca; 11/07/2012 a las 18:08
  #3 (permalink)  
Antiguo 11/07/2012, 18:17
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 9 años, 11 meses
Puntos: 4
Respuesta: Limitar expresión regular

La cuestión es por qué ignora el &$ en [\S&$]{0,} con el $ debería de acabar
  #4 (permalink)  
Antiguo 11/07/2012, 18:47
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 9 años, 11 meses
Puntos: 4
Respuesta: Limitar expresión regular

tampoco así
Código PHP:
preg_replace('/^[?|&]{0,}pagina=\S{0,}&$/i'''$url

Última edición por erxaca; 11/07/2012 a las 19:01

Etiquetas: limitar, regular, variables
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 06:33.