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 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
加速XP搜索功能堪比vista
Mar 22 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
php读取xml实例代码
Jan 28 PHP
PHP数据类型的总结分析
Jun 13 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
php输出含有“#”字符串的方法
Jan 18 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 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在线代理转向代码
2012/05/05 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
读jQuery之一(对象的组成)
2011/06/11 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
angular的输入和输出的使用方法
2018/09/22 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
PyQt5实现简易计算器
2020/05/30 Python
python编写微信公众号首图思路详解
2019/12/13 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
导游词之张家口
2019/12/13 职场文书