我想获取任何网址的主机名,例如,如果我有以下网址
$url = "http://www.google.com";
然后我想只获得google
点.
之后和点数.
之前的内容,以便它可以应用于所有类型的网址。
所以结果应该是google
!我认为这可能需要正则表达式或某种方式
任何想法怎么做,谢谢。
答案 0 :(得分:7)
你可以尝试
echo __extractName("http://google.com");
echo __extractName("http://office1.dept1.google.com");
echo __extractName("http://google.co.uk");
function __extractName($url)
{
$domain = parse_url($url , PHP_URL_HOST);
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $list)) {
return substr($list['domain'], 0,strpos($list['domain'], "."));
}
return false;
}
输出
google
google
google
答案 1 :(得分:2)
你应该看看PHP的parse_url()函数,该函数返回构成URL的各种组件的关联数组。
$url = "http://www.google.com";
print_r(parse_url($url));
将回显以下数组。
Array ( [scheme] => http [host] => www.google.com )
上述功能只会给你一个开始。请查看以下Stackoverflow存档,了解如何从此处获取它。
PHP Getting Domain Name From Subdomain
Get domain name (not subdomain) in php
PHP function to get the subdomain of a URL
编辑(少数档案 - 我不确定你用Google搜索/试过了什么)