如何根据一个域名,获取它的根域名啊? 根据域名字符串,生成顶级域名的字符串,如下: 原字符 => 生成后 www.baidu.com => baidu.com auto.sina.com.cn => sina.com.cn ...用PHP应该怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵.朋友.你是在写域名解析系统吗?哈哈.如果是用php来写的话,颇具有点麻烦...以点号来区分不太妥当,我曾经差点在假"淘宝"上当过一次,就是.有个xxx.taobao.com.ashen.com.cn的域名.哈哈这么长.牛吧.给你个思路,具体的代码应该很容易:不以点来区分,也不以com或cn等域名结尾来区分,以/来区分.在HTTP协议中,/一般作为结尾.1.建立一个顶级域名数据库(可以在php页面内置,也可以用xml,或者你直接想储存在mysql中也不错,方便日后添加),储存com,cn,net,org,cc,us,jp,info,me,la等等域名后缀,但像com.cn这类可以不必了,用字符串处理函数就可以判断了.省去一些麻烦骤.2.用字符串处理,将从左到右第一次出现的/句末的字符串都删除.3.将得到的字符串,如xxx.taobao.com.ashen.com.cn,从右至左开始处理,遇到数据库中已知的域名后缀,检查.cn域名,发现一个,del掉,发现.com后缀,del掉,注意,这里的点号就很重要了,可以区分开是否是域名后缀,当检查不到有数据库中的点什么什么后缀域名时候,在接下去的那个点号里面的ashen即是根域名了.提取,然后加上已经del掉的那两个.即ashen.com.cn.这样说起来有点繁杂..具体还得你去摸索.我想代码要写的话,估计很简单...先以/区分,再配合数据,以点.来区分.很容易吧? 不系吧?思路已经有了,网上流传的,都是截取整个域名的代码,加以修改即可.<?function PMA_getenv($var_name) {if (isset($_SERVER[$var_name])) {return $_SERVER[$var_name];} elseif (isset($_ENV[$var_name])) {return $_ENV[$var_name];} elseif (getenv($var_name)) {return getenv($var_name);} elseif (function_exists('apache_getenv')&& apache_getenv($var_name, true)) {return apache_getenv($var_name, true);}return '';}if (empty($HTTP_HOST)) {if (PMA_getenv('HTTP_HOST')) {$HTTP_HOST = PMA_getenv('HTTP_HOST');} else {$HTTP_HOST = '';}}echo htmlspecialchars($HTTP_HOST);?> 整个域名直接 parse_url('http://www.baidu.com')['host'] 就可以了主要是从 www.baidu.com 获取 根域名baidu.com还得考虑到.com.cn的问题 嘿嘿www.net.cn是net.cn还是www.net.cn楼主想要哪个? 理论上 xxx.com.cnwww.sina.com.cn都属于 com.cn 的. 要www.net.cn 因为www.net.cn 其实是省略了前边的www,现在看到的www就是它注册net.cn域名时填的东西你访问一下http://www.www.net.cn/ 就知道了 有人做过 采集奇艺视频的吗 求指点 为何我的php链接数据库老成功呢? 想付费定制一个网站,这里有接单子的朋友吗? PHP初学者在线等 php在mvc框架中session不能被传递 今天分析dede的源友,实在太失望了, 因公司需要从.NET转到PHP谁能给推荐几本好书? 正则求救 $_FILES[]是在文件上传前组装的还是等上传完成后才组装的? php二维数组的问题,求大神解答 PHP 调用 c# 写的web-service的问题 在线请教,如何修改已有时间变量的格式~
不以点来区分,也不以com或cn等域名结尾来区分,以/来区分.在HTTP协议中,/一般作为结尾.
1.建立一个顶级域名数据库(可以在php页面内置,也可以用xml,或者你直接想储存在mysql中也不错,方便日后添加),储存com,cn,net,org,cc,us,jp,info,me,la等等域名后缀,但像com.cn这类可以不必了,用字符串处理函数就可以判断了.省去一些麻烦骤.
2.用字符串处理,将从左到右第一次出现的/句末的字符串都删除.
3.将得到的字符串,如xxx.taobao.com.ashen.com.cn,从右至左开始处理,遇到数据库中已知的域名后缀,检查.cn域名,发现一个,del掉,发现.com后缀,del掉,注意,这里的点号就很重要了,可以区分开是否是域名后缀,当检查不到有数据库中的点什么什么后缀域名时候,在接下去的那个点号里面的ashen即是根域名了.提取,然后加上已经del掉的那两个.即ashen.com.cn.
这样说起来有点繁杂..具体还得你去摸索.我想代码要写的话,估计很简单...先以/区分,再配合数据,以点.来区分.很容易吧?
function PMA_getenv($var_name) {
if (isset($_SERVER[$var_name])) {
return $_SERVER[$var_name];
} elseif (isset($_ENV[$var_name])) {
return $_ENV[$var_name];
} elseif (getenv($var_name)) {
return getenv($var_name);
} elseif (function_exists('apache_getenv')
&& apache_getenv($var_name, true)) {
return apache_getenv($var_name, true);
}
return '';
}
if (empty($HTTP_HOST)) {
if (PMA_getenv('HTTP_HOST')) {
$HTTP_HOST = PMA_getenv('HTTP_HOST');
} else {
$HTTP_HOST = '';
}
}
echo htmlspecialchars($HTTP_HOST);
?>
主要是从 www.baidu.com 获取 根域名baidu.com
还得考虑到.com.cn的问题
www.net.cn
是
net.cn
还是
www.net.cn
楼主想要哪个?
因为www.net.cn 其实是省略了前边的www,现在看到的www就是它注册net.cn域名时填的东西
你访问一下http://www.www.net.cn/ 就知道了