
To parse a URL with PHP, you need to use the built-in parse_url() function.
The parse_url() function takes a URL string and returns an associative array containing the URL’s components.
The syntax of the function is as follows:
parse_url(
string $url,
int $component = -1
): int|string|array|null|false
The parse_url() function accepts two parameters:
- The required
$urlstring to parse - The
$componentinteger tells the function to retrieve a specific URL component (optional)
Here’s an example of calling the parse_url() function:
<?php
$url = parse_url("https://sebhastian.com/php-parse-url");
print_r($url);
// 👇 output
// Array
// (
// [scheme] => https
// [host] => sebhastian.com
// [path] => /php-parse-url
// )
The above code shows how parse_url() returns an associative array of three elements: the scheme, host, and path elements.
Depending on your URL form, the function can return the elements below:
schemehostportuserpasspathqueryfragment
You can select a specific component as follows:
PHP_URL_SCHEMEPHP_URL_HOSTPHP_URL_PORTPHP_URL_USERPHP_URL_PASSPHP_URL_PATHPHP_URL_QUERYPHP_URL_FRAGMENT
Here’s an example of retrieving only the URL’s host:
<?php
echo parse_url(
"https://sebhastian.com/php-parse-url",
PHP_URL_HOST
);
// 👇 output:
// sebhastian.com -> string
The component you wish to retrieve will be returned as a string except for PHP_URL_PORT which will return an int.
When the component doesn’t exist, the function returns null.
For more information and examples, you can visit the parse_url documentation.
Now you’ve learned how to parse a URL using PHP. Good work! 👍