В PHP есть функция parse_url(), которая разбивает URL на отдельные компоненты (протокол, имя хоста, путь, параметры и т.д.). Вот пример использования:

$url = 'https://www.example.com/path/to/page.php?id=123';
$components = parse_url($url);

// Получаем имя хоста
$host = $components['host']; // 'www.example.com'

// Получаем путь
$path = $components['path']; // '/path/to/page.php'

// Получаем параметры
parse_str($components['query'], $params);
$id = $params['id']; // '123'

Также можно использовать функции parse_str() и http_build_query() для работы с параметрами URL.