我已经看到了很多关于这个确切主题的问题,但似乎没有一个能解决我的问题。我想创建一个函数,该函数将从网站地址中删除除域名之外的所有内容。例如,如果用户输入:http://www.stackoverflow.com/blahblahblah我想获得stackoverflow,如果用户输入facebook.com/user/bacon我想获得facebook。
有谁知道我可以删除字符串某些部分的函数或方法?也许它会搜索 http,当找到它时,它会删除所有内容,直到 // 然后它会搜索 www,如果找到它会删除所有内容,直到 . 然后它会保留所有内容直到下一个点,它会删除它后面的所有内容?现在来看,这可能会导致http://www.en.wikipedia.org等网站出现问题,因为我只剩下 en。
有什么想法(最好用 PHP,但也欢迎使用 JavaScript)?
编辑 1: 多亏了很好的反馈,我想我已经能够制定出一个我想要的功能:
function getdomain($url) {
$parts = parse_url($url);
if($parts['scheme'] != 'http') {
$url = 'http://'.$url;
}
$parts2 = parse_url($url);
$host = $parts2['host'];
$remove = explode('.', $host);
$result = $remove[0];
if($result == 'www') {
$result = $remove[1];
}
return $result;
}
它并不完美,至少考虑到子域,但我认为可以做点什么。也许在末尾添加第二个 if 语句来检查数组的长度。如果它大于两个,则选择项目 nr1 而不是项目 nr0。这显然给我带来了与使用 .co.uk 的任何域相关的麻烦(因为这将是很长的树项目,但我不想返回 co)。我会尝试解决它一点点,看看我想出了什么。如果你们中的一些 PHP 专家也可以看看,我会很高兴。我不像你们中的任何人那样熟练或经验丰富......:P