Hay veces en las que nos es necesario recuperar la url y actualizar un valor determinado, como por ejemplo en un paginador en el que queremos cambiar el número de página, pero mantener el resto de parámetros. Por norma general (siempre y cuando no sea muy extensa) rehacemos la url en función de los parámetros que sabemos estamos pasando, pero y si no sabemos que parámetros estamos pasando ?

Para ello, esta pequeña pero útil función, nos permitirá cambiar un parámetro y asignarle el valor que queramos, respetando siempre el resto de la estructura de la url.

< ?php
// Definimos la página que recibe
// los parámetros de la url
define('URL','index.php');

function urL($variable, $valor)
{
   // Recuperamos la url recibida
   // y la reseteamos por si ya fué utilizada
   reset($_GET);
   // Una vez reseteada la tratamos a nuestro gusto
   $url = URL.'?'.$variable.'='.$valor;

   // Creamos un bucle con todos los parámetros
   // recuperados de la url
   while(list($key, $val) = each($_GET))
   {
      // Metemos todos esos parámetros en una variable
      //  siempre que no sean iguales a los parametro
      //  que pasamos por la función ($variable)
      if($key != $variable)
      {
         if (strlen($url) > 1)
         {
            $url.= ‘&’;
         }
         $url.= $key.’=’.urlencode($val);
      }
   }
   return $url;
}

/*
Modo de uso
Si queremos cambiar el parámetro idioma en la url
index.php?idioma=es&id=150&cat=10&pagina=4
Haríamos lo siguiente:
urL(’idioma’,'en’);
o también
urL(’idioma’,$_GET['idioma']);
*/

?>