从字符串php中提取顶级域名

noo*_*lag 9 php string

我需要从字符串中提取域名,这可能是任何东西.如:

$sitelink="http://www.somewebsite.com/product/3749875/info/overview.html";
Run Code Online (Sandbox Code Playgroud)

要么

$sitelink="http://subdomain.somewebsite.com/blah/blah/whatever.php";
Run Code Online (Sandbox Code Playgroud)

在任何情况下,我都想提取'somewebsite.com'部分(可能是任何东西),并丢弃其余部分.

Law*_*one 14

使用parse_url($ url)

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));
?>

The above example will output:

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
Run Code Online (Sandbox Code Playgroud)

使用thos值

echo parse_url($url, PHP_URL_HOST); //hostname
Run Code Online (Sandbox Code Playgroud)

要么

$url_info = parse_url($url);
echo $url_info['host'];//hostname
Run Code Online (Sandbox Code Playgroud)


小智 5

这里是

<?php

$sitelink="http://www.somewebsite.com/product/3749875/info/overview.html";

$domain_pieces = explode(".", parse_url($sitelink, PHP_URL_HOST));

$l = sizeof($domain_pieces);

$secondleveldomain = $domain_pieces[$l-2] . "." . $domain_pieces[$l-1];

echo $secondleveldomain;
Run Code Online (Sandbox Code Playgroud)

请注意,这可能不是您要寻找的行为,因为对于像

stackoverflow.co.uk
Run Code Online (Sandbox Code Playgroud)

它将回显“ co.uk”


看到:

http://publicsuffix.org/learn/

http://www.dkim-reputation.org/regdom-libs/

http://www.dkim-reputation.org/regdom-lib-downloads/ <-在此处下载,包括php