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); 
    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
 

