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 相关文章推荐
用Flash图形化数据(一)
Oct 09 PHP
介绍几个array库的新函数 php
Dec 29 PHP
收集的DedeCMS一些使用经验
Mar 17 PHP
PHP 上传文件的方法(类)
Jul 30 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
php使用正则表达式获取字符串中的URL
Dec 29 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
PHP chop()函数讲解
2019/02/11 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
Cookie 小记
2010/04/01 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
python操作CouchDB的方法
2014/10/08 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
三年级语文教学反思
2014/02/01 职场文书
银行求职自荐书
2014/06/25 职场文书
科学发展观标语
2014/10/08 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
学术会议开幕词
2016/03/03 职场文书