CakeFest 2017 NYC, the Official CakePHP Conference


(PECL pecl_http >= 0.21.0)

http_build_urlBuild a URL


string http_build_url ([ mixed $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.



(part(s) of) an URL in form of a string or associative array like parse_url() returns


same as the first argument


a bitmask of binary or'ed HTTP_URL constants; HTTP_URL_REPLACE is the default


if set, it will be filled with the parts of the composed url like parse_url() would return

Return Values

Returns the new URL as string on success or FALSE on failure.


Example #1 A http_build_url() example

echo http_build_url("",
"scheme" => "ftp",
"host" => "",
"path" => "files/current/",
"query" => "a=c"

The above example will output:

See Also

add a note add a note

User Contributed Notes 2 notes

zlatko dot zlatev at gmail dot com
1 year 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+
pasafama at gmail dot com
2 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']
To Top