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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?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']); */ ?> |
2 de abril de 2009 a las 10:39
http://www.rincondelcodigo.com