关于PHP的trim函数的问题

问个问题,加入有一个网址是 http://fgahadf.fgadsg.abc.com/fdshsd/hgfj
那么我怎么样得到abc.com,而将无用的信息过滤掉,即得到根域?php怎么写?
打错字了,更正:
假如有一个网址是 http://fgahadf.fgadsg.abc.com/fdshsd/hgfj
那么我怎么样得到abc.com,而将无用的信息过滤掉,得到根域?php怎么写?
to 一楼:“将所有可能的域名后缀作为后缀数组”,这个数组太大了,用mysql可以不可以帮助一下

我只告诉你思路,这个问题比较复杂,用Trim恐怕无法解决了

域名可能是.cn也可能是.com.cn,诸如此类,所以你无法将主机名(fgahadf.gfadsg.abc.com)以“.”分割得到数组,然后取后面两个作为根域。

第一步:将所有可能的域名后缀作为后缀数组,比如(.cn,.com,.com.cn,.net等等),而且要注意,“.”多的排在前面;
第二步:正序遍历该数组并和主机名比较,在主机名中查找符合的字符串下标,以你的主机名为例,应该找到.com,符合的字符串下标就是18,然后再在主机名中往前找上一个“.”的下标,得到14,由此可以得到你要的根域名就是主机名字符串中下标15到末尾的字符组成的字符串。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-19
url = "http://fgahadf.fgadsg.abc.com/fdshsd/hgfj"
第一步 去掉 协议前缀 $url = str_replace('http://','',$url)
第二步 获取域名部分 $url = substr($url,0,strpos($url,'/'))
第三步 定义 常用域名列表 $domains = array('gov.cn','com.cn','com','cn');
foreach ($domains as $domain){
if ($p=strpos($url,$domain)!==FALSE){
$url = replace('.'.$domain,'',$url);//去掉域名后缀
$parts = explode(',',$url);
$rootdomain = $parts[count($parts)-1] . '.'.&domain;//获取
break;
}
}
大概是这样,没调试,本回答被提问者采纳