This function has a useful undocumented feature - the defaults are set in such a way that calling it with no parameters returns the full URL of the page being accessed.
http_build_url
(PECL pecl_http >= 0.21.0)
http_build_url — Construir una URL
Descripción
$url
[, mixed $parts
[, int $flags = HTTP_URL_REPLACE
[, array &$new_url
]]]] )Construye una URL.
Los componentes de la segunda URL se combinarán con los de la primera, tal como se especifique en el parámetro flags.
Parámetros
-
url -
(componente/s de) una URL, o bien en forma de string o bien en forma de array asociativo como en la respuesta de parse_url()
-
parts -
lo mismo que el primer parámetro
-
flags -
máscara "or" de bits de constantes HTTP_URL; por omisión,
HTTP_URL_REPLACE -
new_url -
se rellena con los componentes de la URL generada, como en los valores devueltos por parse_url()
Valores devueltos
Devuelve la nueva URL en forma de string o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de http_build_url()
<?php
echo http_build_url("http://user@www.example.com/pub/index.php?a=b#files",
array(
"scheme" => "ftp",
"host" => "ftp.example.com",
"path" => "files/current/",
"query" => "a=c"
),
HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT
);
?>
El resultado del ejemplo sería:
ftp://ftp.example.com/pub/files/current/?a=c
Ver también
- parse_url() - Analiza una URL y devolver sus componentes
- http_build_str() - Construir string de consulta
Although I've never used this function, based on the documentation it seems that the above code should also include the following:
<?php
if ( ! is_array( $url ) ) // Added - Randy
// Parse the original URL
$parse_url = parse_url($url);
// allow parts to be a url Added - Randy
if ( ! is_array( $parts ) )
$parts = parse_url( $parts );
?>
