Foros del Web » Programando para Internet » PHP »

Cambiar variables en URL

Estas en el tema de Cambiar variables en URL en el foro de PHP en Foros del Web. Hola amigos, les cuento mi problema, a ver si me pueden ayudar :) Tengo la siguiente URL que sale de un formulario enviado por GET: ...
  #1 (permalink)  
Antiguo 19/05/2010, 10:08
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Cambiar variables en URL

Hola amigos, les cuento mi problema, a ver si me pueden ayudar :)


Tengo la siguiente URL que sale de un formulario enviado por GET:


http://midominio.com/index.php?edad=22&&pais=argentina&provincia[]=buenos+aires&provincia[]=cordoba

Destripando las variables tengo:

edad = 22
pais = argentina
provincia [] = buenos aires
provincia [] = cordoba

Lo que quiero hacer, es, una vez obtenida la URL, procesarla para cambiar esas variables a través de alguna funcion generica.

Buscando un poco encontre un par de funciones que realizan lo que quiero:

Código PHP:
            function get_self_link($new_get_vars=array(),$full_url=false) {

    

                
$string '';

                
$get_vars $_GET;

                foreach ( 
$new_get_vars as $k=>$v )

                
$get_vars[$k] = $v;

                
$protocol = ( isset($_SERVER['HTTPS']) &&

                
$_SERVER['HTTPS']=='on' ) ? 'https' 'http';

                
$current_url $protocol.'://'.$_SERVER['HTTP_HOST'].

                
$_SERVER['REQUEST_URI'];

                
$url_parts = @parse_url($current_url);

                
$query get_query_string($get_vars);

                if ( 
$full_url )

                
$string $protocol.'://'.$_SERVER['HTTP_HOST'];

                
$string .= $url_parts['path'].$query;

                return 
$string;

            }



            function 
get_query_string($attribs) {

                
$query '?';

                foreach ( 
$attribs as $k=>$v ) {

                    if ( 
$v !== null && !is_array($v) ) {

                        
$query .= $k;

                        
$query .= '='.str_replace('%2F','/',urlencode($v));

                        
$query .= '&';

                    }

                }

                
$query substr($query,0,-1);

                
$query str_replace('&','&',$query);

                return 
$query;

            } 

Las funciones se utilizarian así:

Código PHP:
$url "http://midominio.com/index.php?edad=22&&pais=argentina&provincia[]=buenos+aires&provincia[]=cordoba";

$variables_set = array("pais" => "uruguay""edad" => "35");

$url_nueva get_self_link($variables_set$url); 
y me deveria devolver:

http://midominio.com/index.php?edad=35&&pais=uruguay&provincia[]=buenos+aires&provincia[]=cordoba

pero me devuelve:

http://midominio.com/index.php?edad=35&&pais=uruguay

O sea, que no procesa los arrays que se le pasan a la URL original.

Podrian ayudarme para que la funcion procese los arrays y los añada a la URL final? O conocen un mejor método para hacerlo y que cumple lo que deseo?

Muchas gracias,

Saludos

Etiquetas: url, 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 12:22.