PHP Velho Oeste 2024

http_build_url

(PECL pecl_http >= 0.21.0)

http_build_urlФормирует URL

Описание

string http_build_url ([ mixed $url [, mixed $parts [, int $flags = HTTP_URL_REPLACE [, array &$new_url ]]]] )

Формирует URL.

Части второго URL будут объединены с первым в соответствие с установленными флагами.

Список параметров

url

Часть(и) адреса URL в виде строки или ассоциативного массива как в результате функции parse_url()

parts

Аналогично первому аргументу

flags

Битовая маска бинарных ИЛИ, составленная из HTTP_URL constants; по умолчанию HTTP_URL_REPLACE.

new_url

Если указан, будет заполнен частями собранного url в виде ассоциативного массива, по структуре аналогичного результату работы функции parse_url().

Возвращаемые значения

Возвращает URL в качестве строки в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования 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
);
?>

Результат выполнения данного примера:

ftp://ftp.example.com/pub/files/current/?a=c

Смотрите также

  • parse_url() - Разбирает URL и возвращает его компоненты
  • http_build_str() - Строит строку запроса

add a note add a note

User Contributed Notes 3 notes

up
12
zlatko dot zlatev at gmail dot com
9 years ago
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+
up
4
pasafama at gmail dot com
9 years ago
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']
up
1
Jaguar
6 years ago
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
To Top