Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2014, 03:04
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Expresiones regulares PCRE

Hace unos días puse en el foro una clase para paginación. Dicha clase funciona, pero después de hacer más pruebas, he encontrado un error en el método que crea el nuevo enlace.

Dicho error consiste en que en el siguiente método, sustituye solamente un dígito, y lo que quiero lograr es que sustituya cualquier cantidad de dígitos, no uno, ni dos, ya que el paginador está pensado para que sea, en teoría, ilimitado.

Código PHP:
Ver original
  1. /*
  2.      * busca y sustituye un patron dentro de una URL para
  3.      * eliminar ese patron y sustituirlo para crear una nueva URL
  4.      * evitando repetir el patron en la URL
  5.      *
  6.      * por ejemplo evitar::          ?page=1&page=2&page=3
  7.      */
  8.     public  function    createURL($url, $id, $page)
  9.     {
  10.         //si el identificador no se encuentra en la url
  11.         if(substr_count($url, $id)  ==0)
  12.         {
  13.             //agrega al final de la url el identificador y el valor que le corresponde
  14.             $url  =   $url."&".$id."=".$page;
  15.         }
  16.        
  17.         //sino busca y reemplaza el identificador en la url por su nuevo valor
  18.         else
  19.       {
  20.             $url  =   preg_replace("/(".$id."=[[:digit:]])/i", $id."=".$page, $url);
  21.         }
  22.        
  23.         return  $url;
  24.     }

Después de leer sobre expresiones regulares, no encuentro nada que me sirva para alcanzar mi propósito con esta expresión regular.

¿Alguien puede orientarme?
__________________
Ayúdame a hacerlo por mi mismo.