php中取得URL的根域名的代码


Posted in PHP onMarch 23, 2011
<?php 
/** 
* 取得根域名 
* 
* @author lonely 
* @create 2011-3-11 
* @version 0.1 
* @lastupdate lonely 
* @package Sl 
*/ 
class Sl_RootDomain{ 
private static $self; 
private $domain=null; 
private $host=null; 
private $state_domain; 
private $top_domain; 
/** 
* 取得域名分析实例 
* Enter description here ... 
*/ 
public static function instace(){ 
if(!self::$self) 
self::$self=new self(); 
return self::$self; 
} 
private function __construct(){ 
$this->state_domain=array( 
'al','dz','af','ar','ae','aw','om','az','eg','et','ie','ee','ad','ao','ai','ag','at','au','mo','bb','pg','bs','pk','py','ps','bh','pa','br','by','bm','bg','mp','bj','be','is','pr','ba','pl','bo','bz','bw','bt','bf','bi','bv','kp','gq','dk','de','tl','tp','tg','dm','do','ru','ec','er','fr','fo','pf','gf','tf','va','ph','fj','fi','cv','fk','gm','cg','cd','co','cr','gg','gd','gl','ge','cu','gp','gu','gy','kz','ht','kr','nl','an','hm','hn','ki','dj','kg','gn','gw','ca','gh','ga','kh','cz','zw','cm','qa','ky','km','ci','kw','cc','hr','ke','ck','lv','ls','la','lb','lt','lr','ly','li','re','lu','rw','ro','mg','im','mv','mt','mw','my','ml','mk','mh','mq','yt','mu','mr','us','um','as','vi','mn','ms','bd','pe','fm','mm','md','ma','mc','mz','mx','nr','np','ni','ne','ng','nu','no','nf','na','za','aq','gs','eu','pw','pn','pt','jp','se','ch','sv','ws','yu','sl','sn','cy','sc','sa','cx','st','sh','kn','lc','sm','pm','vc','lk','sk','si','sj','sz','sd','sr','sb','so','tj','tw','th','tz','to','tc','tt','tn','tv','tr','tm','tk','wf','vu','gt','ve','bn','ug','ua','uy','uz','es','eh','gr','hk','sg','nc','nz','hu','sy','jm','am','ac','ye','iq','ir','il','it','in','id','uk','vg','io','jo','vn','zm','je','td','gi','cl','cf','cn','yr' 
); 
$this->top_domain=array('com','arpa','edu','gov','int','mil','net','org','biz','info','pro','name','museum','coop','aero','xxx','idv','me','mobi'); 
$this->url=$_SERVER['HTTP_HOST']; 
} 
/** 
* 设置URL 
* Enter description here ... 
* @param string $url 
*/ 
public function setUrl($url=null){ 
$url=$url?$url:$this->url; 
if(empty($url))return $this; 
if(!preg_match("/^http::/is", $url)) 
$url="http://".$url; 
$url=parse_url(strtolower($url)); 
$urlarr=explode(".", $url['host']); 
$count=count($urlarr); 
if ($count<=2){ 
$this->domain=array_pop($url); 
}else if ($count>2){ 
$last=array_pop($urlarr); 
$last_1=array_pop($urlarr); 
if(in_array($last, $this->top_domain)){ 
$this->domain=$last_1.'.'.$last; 
$this->host=implode('.', $urlarr); 
}else if (in_array($last, $this->state_domain)){ 
$last_2=array_pop($urlarr); 
if(in_array($last_1, $this->top_domain)){ 
$this->domain=$last_2.'.'.$last_1.'.'.$last; 
$this->host=implode('.', $urlarr); 
}else{ 
$this->host=implode('.', $urlarr).$last_2; 
$this->domain=$last_1.'.'.$last; 
} 
} 
} 
return $this; 
} 
/** 
* 取得域名 
* Enter description here ... 
*/ 
public function getDomain(){ 
return $this->domain; 
} 
/** 
* 取得主机 
* Enter description here ... 
*/ 
public function getHost(){ 
return $this->host; 
} 
} 
?>
PHP 相关文章推荐
PHP下MAIL的另一解决方案
Oct 09 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
php中获得视频时间总长度的另一种方法
Sep 15 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
php实现评论回复删除功能
May 23 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
详解php协程知识点
Sep 21 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 #PHP
PHP 事件机制(2)
Mar 23 #PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 #PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 #PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 #PHP
PHPUnit PHP测试框架安装方法
Mar 23 #PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 #PHP
You might like
PHP字符串的连接的简单实例
2013/12/30 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
js 数组操作代码集锦
2009/04/28 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
Python面向对象封装操作案例详解
2019/12/31 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
入团者的自我评价分享
2013/12/02 职场文书
大学生自荐信
2013/12/11 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
王老吉广告词
2014/03/20 职场文书
小学生演讲稿大全
2014/04/25 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
python删除csv文件的行列
2021/04/06 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis
Windows7下FTP搭建图文教程
2022/08/05 Servers