+ * Expexts (part(s) of) an URL as first parameter in form of a string or assoziative array
+ * like parse_url() returns. Accepts an optional second parameter in the same way as the
+ * first argument. Accepts an optional third integer parameter, which is a bitmask of
+ * binary or'ed HTTP_URL_* constants. The optional fourth parameter will be filled
+ * with the results as associative array like parse_url() would return.
+ *
+ * The parts of the second URL will be merged into the first according to the flags argument.
+ * The following flags are recognized:
+ * <pre>
+ * - HTTP_URL_REPLACE: (default) set parts of the second url will replace the parts in the first
+ * - HTTP_URL_JOIN_PATH: the path of the second url will be merged into the one of the first
+ * - HTTP_URL_JOIN_QUERY: the two querystrings will be merged naivly; no replacements are done
+ * - HTTP_URL_STRIP_USER: the user part will not appear in the result
+ * - HTTP_URL_STRIP_PASS: the password part will not appear in the result
+ * - HTTP_URL_STRIP_AUTH: neither the user nor the password part will appear in the result
+ * - HTTP_URL_STRIP_PORT: no explicit port will be set in the result
+ * - HTTP_URL_STRIP_PATH: the path part will not appear in the result
+ * - HTTP_URL_STRIP_QUERY: no query string will be present in the result
+ * - HTTP_URL_STRIP_FRAGMENT: no fragment will be present in the result
+ * </pre>
+ *
+ * Example:
+ * <pre>
+ * <?php
+ * // ftp://ftp.example.com/pub/files/current/?a=b&a=c
+ * 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
+ * );
+ * ?>
+ * </pre>