parse_url 并删除子域

parse_url and removing subdomain

我想从 URL 中删除除域之外的所有内容。所以 http://i.imgur.com/rA81kQf.jpg 变成 imgur.com.

$url = 'http://i.imgur.com/rA81kQf.jpg';

$parsedurl = parse_url($url);

$parsedurl = preg_replace('#^www\.(.+\.)#i', '', $parsedurl['host']);

// now if a dot exists, grab everything after it. This removes any potential subdomain
$parsedurl = preg_replace("/^(.*?)\.(.*)$/","",$parsedurl);

以上方法可行,但我觉得我应该只做一个 preg_replace。知道如何将两者结合起来吗?

您可以使用 parse_url() 来获得所需的输出,

    $url = "http://i.imgur.com/rA81kQf.jpg";
    $parseData = parse_url($url);
    $domain = preg_replace('/^www\./', '', $parseData['host']);


    $array = explode(".", $domain);

    echo (array_key_exists(count($array) - 2, $array) ? $array[count($array) - 2] : "") . "." . $array[count($array) - 1];

打印

imgur.com