parse_url
Description
Syntax
parse_url(
string $url,
int $component = -1
): int|string|array|null|falseParameters
url
The URL to parse.
component
Specify one of PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT to retrieve just a specific URL component as a string (except when PHP_URL_PORT is given, in which case the return value will be an int).
Return
On seriously malformed URLs, parse_url() may return false.
If the component parameter is omitted, an associative array is returned. At least one element will be present within the array.
| Keys | Description |
|---|---|
| scheme | |
| host | |
| port | |
| user | |
| pass | |
| path | |
| query | after the question mark (?) |
| fragment | after the hash mark (#) |
If the component parameter is specified, parse_url() returns a string (or an int, in the case of PHP_URL_PORT) instead of an array. If the requested component doesn't exist within the given URL, null will be returned. As of PHP 8.0.0, parse_url() distinguishes absent and empty queries and fragments:
http://example.com/foo → query = null, fragment = null http://example.com/foo? → query = "", fragment = null http://example.com/foo# → query = null, fragment = "" http://example.com/foo?# → query = "", fragment = ""
Previously all cases resulted in query and fragment being null.
Examples
1 · url
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $return = parse_url($url); print_r($return);
Array
(
[scheme] => https
[host] => hostname
[port] => 9090
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
2 · component · PHP_URL_SCHEME
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_SCHEME; $return = parse_url($url, $component); echo $return;
https
3 · component · PHP_URL_HOST
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_HOST; $return = parse_url($url, $component); echo $return;
hostname
4 · component · PHP_URL_PORT
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_PORT; $return = parse_url($url, $component); echo $return;
9090
5 · component · PHP_URL_USER
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_USER; $return = parse_url($url, $component); echo $return;
username
6 · component · PHP_URL_PASS
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_PASS; $return = parse_url($url, $component); echo $return;
password
7 · component · PHP_URL_PATH
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_PATH; $return = parse_url($url, $component); echo $return;
/path
8 · component · PHP_URL_QUERY
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_QUERY; $return = parse_url($url, $component); echo $return;
arg=value
9 · component · PHP_URL_FRAGMENT
<? $url = 'https://username:password@hostname:9090/path?arg=value#anchor'; $component = PHP_URL_FRAGMENT; $return = parse_url($url, $component); echo $return;
anchor