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 相关文章推荐
sphinx增量索引的一个问题
Jun 14 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
关于crontab的使用详解
Jun 24 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 PHP
PHP实现的带超时功能get_headers函数
Feb 10 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
PHP实现GIF图片验证码
Nov 04 PHP
php实现简单加入购物车功能
Mar 07 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
phpquery中文手册
Mar 18 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 base64编码后解码乱码的解决办法
2014/06/19 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
Python itertools模块详解
2015/05/09 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
C语言编程练习
2012/04/02 面试题
如何开发一个JQuery插件
2016/07/28 面试题
中专自荐信
2013/10/13 职场文书
幼师自荐信
2013/10/26 职场文书
受欢迎的大学生自我评价
2013/12/05 职场文书
安全事故检讨书
2014/01/18 职场文书
会计电算化个人求职信范文
2014/01/24 职场文书
食品安全工作方案
2014/05/07 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
工会积极分子个人总结
2015/03/03 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
婚育证明样本
2015/06/16 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python