Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Función PHP para eliminar parámetros de una URL

Imago voragine.net
[actualizado el ]Enlace permanente

En el hilo de comentarios de la entrada PHP Function: Remove a Query String Key, Value del blog de David Walsh hay un buen puñado de funciones que permiten eliminar parámetros de una URL. Una de ellas me parece una solución más sencilla que la propone el propio David.

La he modificado mínimamente para que ofrezca la posibilidad de eliminar más de un parámetro:

// Elimina los parámetros suministrador mediante la array $keys de la URL $url
function remove_url_query_args($url,$keys=array()) {
        $url_parts = parse_url($url);
        if(empty($url_parts['query'])) return $url;
                
        parse_str($url_parts['query'], $result_array);
        foreach ( $keys as $key ) { unset($result_array[$key]); }
        $url_parts['query'] = http_build_query($result_array);
        $url = (isset($url_parts["scheme"])?$url_parts["scheme"]."://":"").
                (isset($url_parts["user"])?$url_parts["user"].":":"").
                (isset($url_parts["pass"])?$url_parts["pass"]."@":"").
                (isset($url_parts["host"])?$url_parts["host"]:"").
                (isset($url_parts["port"])?":".$url_parts["port"]:"").
                (isset($url_parts["path"])?$url_parts["path"]:"").
                (isset($url_parts["query"])?"?".$url_parts["query"]:"").
                (isset($url_parts["fragment"])?"#".$url_parts["fragment"]:"");
        return $url;
}

Por ejemplo:

$keys = array("param1","param3");
$url = "http://example.org/?param1=value1&param2=value2&param3=value3";
echo remove_url_query_args($url,$keys);
// output: http://example.org/?param2=value2

6 comentarios

    • Por David

    he tenido un ataque por SQL injection y me gustaría saber donde tengo que poner este código, me imagino que la función la pondría en mi archivo del funciones.php pero como implemento el otro código a las url?

    1. El último bloque de código indica cómo aplicar la función a un URL. No sé si te refieres a eso, David.

    • Por david

    si, donde tengo que colocar ese codigo?

    1. En el archivo que genera la página en la que quieras filtrar la URL.

    • Por Jhon •

    En pocas palabras, esta función tiene una infinidad de formas de ser aplicada dentro de un desarrollo, muchas gracias.

    1. Gracias a ti Jhon, por leer el blog :)

Dejar un comentario

*
*

 

No hay trackbacks