2015-09-26 49 views
0

我想删除一切从一个URL,但域。所以http://i.imgur.com/rA81kQf.jpg成为imgur.com。parse_url和删除子域

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

$parsedurl = parse_url($url); 

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

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

上述工作,但我觉得我应该只是一个preg_replace为此。任何想法如何我可以结合这两个?

+1

可能重复(HTTP ://stackoverflow.com/questions/2679618/get-domain-name-not-subdomain-in-php) – Federkun

+0

http://stackoverflow.com/questions/16027102/get-domain-name-from-full-url –

回答

0

您可以使用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]; 

它打印的[获取域名(不子域)在PHP]

imgur.com