parse_url
funkcja
Rozkłada URL na części: schemat, host, ścieżkę, query, fragment i inne. Zwraca tablicę asocjacyjną lub konkretny komponent.
parse_url(string $url, int $component = -1): int|string|array|null|false
parse_url analizuje podany URL i zwraca tablicę asocjacyjną z komponentami: scheme, host, port, user, pass, path, query, fragment. Nie każdy klucz musi istnieć — jeśli URL nie zawiera np. fragmentu, klucz fragment po prostu nie pojawi się w tablicy.
Jeśli chcesz tylko jeden składnik, podaj stałą jako drugi argument, np. PHP_URL_HOST, PHP_URL_QUERY, PHP_URL_PATH. Funkcja zwróci wtedy string (lub int dla PHP_URL_PORT), nie tablicę.
Uwaga: parse_url nie waliduje poprawności URL-a — sprawdza tylko strukturę. Do walidacji użyj filter_var($url, FILTER_VALIDATE_URL).
<?php
declare(strict_types=1);
$url = 'https://php.net/path?x=1#sekcja';
$czesci = parse_url($url);
print_r($czesci);
// Array (
// [scheme] => https
// [host] => php.net
// [path] => /path
// [query] => x=1
// [fragment] => sekcja
// )
// Tylko host:
$host = parse_url($url, PHP_URL_HOST);
echo $host; // wynik: php.net
// Tylko query string — przydatne przed parse_str():
$query = parse_url($url, PHP_URL_QUERY);
echo $query; // wynik: x=1