http_build_url
(PECL pecl_http >= 0.21.0)
http_build_url — Build a URL
Описание
$url
[, mixed $parts
[, int $flags
= HTTP_URL_REPLACE
[, array &$new_url
]]]] )Build a URL.
The parts of the second URL will be merged into the first according to the flags argument.
Список параметров
-
url
-
(part(s) of) an URL in form of a string or associative array like parse_url() returns
-
parts
-
same as the first argument
-
flags
-
a bitmask of binary or'ed HTTP_URL constants;
HTTP_URL_REPLACE
is the default -
new_url
-
if set, it will be filled with the parts of the composed url like parse_url() would return
Возвращаемые значения
Returns the new URL as string on success или FALSE
в случае возникновения ошибки.
Примеры
Пример #1 A http_build_url() example
<?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
);
?>
Результат выполнения данного примера:
ftp://ftp.example.com/pub/files/current/?a=c
Смотрите также
- parse_url() - Разбирает URL и возвращает его компоненты
- http_build_str() - Build query string
- http_cache_etag
- http_cache_last_modified
- http_chunked_decode
- http_deflate
- http_inflate
- http_build_cookie
- http_date
- http_get_request_body_stream
- http_get_request_body
- http_get_request_headers
- http_match_etag
- http_match_modified
- http_match_request_header
- http_support
- http_negotiate_charset
- http_negotiate_content_type
- http_negotiate_language
- ob_deflatehandler
- ob_etaghandler
- ob_inflatehandler
- http_parse_cookie
- http_parse_headers
- http_parse_message
- http_parse_params
- http_persistent_handles_clean
- http_persistent_handles_count
- http_persistent_handles_ident
- http_get
- http_head
- http_post_data
- http_post_fields
- http_put_data
- http_put_file
- http_put_stream
- http_request_body_encode
- http_request_method_exists
- http_request_method_name
- http_request_method_register
- http_request_method_unregister
- http_request
- http_redirect
- http_send_content_disposition
- http_send_content_type
- http_send_data
- http_send_file
- http_send_last_modified
- http_send_status
- http_send_stream
- http_throttle
- http_build_str
- http_build_url
Коментарии
It seems to me that the return value must always have a protocol, a host and a path. If they are not provided in the input, default values are added.
From what I saw, the default value for the protocol is 'http://', for the host is the hostname (if running from cli) or the variable $_SERVER['HTTP_HOST'], for the path is the variable $_SERVER['SCRIPT_NAME']
pecl_http 2+ won't provide http_ functions any more. They moved to Http namespace, sadly no backwards compat.
To sum it up - As of pecl_http >=2.0.0 this is no longed available. Also pecl_http 1.7.6 will work only for PHP <=5.5. For PHP 5.6 we are forced to use version pecl_http 2.0.6+
The class that replaces the functionality of this function is "http\Url".
The official decomentation can be found at: https://mdref.m6w6.name/http/Url