Získání domény z adresy URL v jazyce PHP

Jak získat doménu z adresy URL v jazyce PHP Extrakce domény z adresy URL je v jazyce PHP běžnou potřebou, ať už jde o ověřování vstupů, filtrování analytických dat nebo zpracování...

Poptat web

12. 11. 2025

Získání domény z adresy URL v jazyce PHP

Jak získat doménu z adresy URL v jazyce PHP

Extrakce domény z adresy URL je v jazyce PHP běžnou potřebou, ať už jde o ověřování vstupů, filtrování analytických dat nebo zpracování přesměrování. Jazyk PHP nabízí několik spolehlivých způsobů, jak to provést, od vestavěných funkcí až po regulární výrazy. Tento průvodce vysvětluje všechny praktické přístupy, včetně toho, jak v případě potřeby odstranit subdomény.

Používání stránek parse_url() (Doporučeno)

Nejjednodušší a nejspolehlivější metodou je použití vestavěného nástroje PHP parse_url() která rozdělí adresu URL na jednotlivé složky.

Příklad:

<?php
$url = 'https://blog.example.co.uk/article?id=10';
 
$host = parse_url($url, PHP_URL_HOST);
echo $host; // Output: blog.example.co.uk

Tím se načte plný hostitel (včetně subdomén). Je ideální pro obecné případy použití, kdy potřebujete celý název hostitele.

Odstranění subdomén pro získání kořenové domény

Pokud potřebujete pouze kořenovou doménu (např, example.co.uk místo blog.example.co.uk), můžete hostitele rozdělit a inteligentně extrahovat poslední dvě nebo tři části.

Příklad:

<?php
$url = 'https://blog.example.co.uk';
$host = parse_url($url, PHP_URL_HOST);
 
$parts = explode('.', $host);
$count = count($parts);
 
if ($count > 2) {
$domain = $parts[$count - 2] . '.' . $parts[$count - 1];
} else {
$domain = $host;
}
 
echo $domain; // Output: example.co.uk

To funguje dobře pro většinu standardních doménových struktur, ačkoli domény nejvyšší úrovně s kódem země (jako např. .co.uk, .com.au) může být v závislosti na vašich požadavcích zapotřebí další manipulace.

Použití regulárních výrazů (rychlé, ale omezené)

Pro jednoduchou extrakci můžete použít také regex, který však není tak spolehlivý pro složité domény.

Příklad:

<?php
$url = 'https://store.blog.example.com/path';
preg_match('/^(?:https?:\/\/)?(?:[^@\/\n]+@)?(?:www\.)?([^:\/\n]+)/', $url, $matches);
 
echo $matches[1]; // Output: store.blog.example.com

Můžete dále zpracovávat $matches[1] pomocí dřívější logiky odstraňování subdomén izolovat kořenovou doménu.

Původní článek publikoval Nabil Hassen.