获取顶级域名修正版,parseHost() (更新日期2013-1-3)
来源:互联网 发布:数车caxa自动编程 编辑:程序博客网 时间:2024/05/21 10:21
2013-1-3 更新:
1,原先的其实有问题的。
2,不要迷信什么OOP,如果一个匹配出顶级域名的也非得写一个OOP出来,合适吗?PHP根本面向对象根本就不灵活!
3,PHP根本就不适合完全的面向对象!根本就不适合!
/** * @access public * @param string $httpurl * @return array [domainLevel,tophost,host,httpurl] */function parseHost($httpurl){ extract( parse_url($httpurl) ); if(!(isset($scheme) && isset($host))) { return; } $dmtypeRegx = '/([a-z0-9\-]+\.)(com\.cn|org\.cn|net\.cn|com\.jp|co\.jp|com\.kr|com\.tw|cn|com|org|info|us|fr|de|tv|net|cc|biz|hk|jp|kr|name|me|tw|la)$/i'; $tophost = preg_match($dmtypeRegx, $host, $matches) ? $matches[1].$matches[2]:''; if($tophost == $host || 'www.'.$tophost == $host) { $domainLevel = 1; } else { $domainLevel = substr_count(substr($host,0,strlen($host)-strlen($tophost)) , '.')+1; } $httpurl = $scheme.'://'.$host; if(isset($port) && !empty($port) && $port != 80) { $httpurl .= ':'.$port; } $httpurl = strtolower($httpurl); if(isset($path)) $httpurl .= $path; if(isset($query)) $httpurl .= '?'.$query; if(isset($fragment)) $httpurl .= '#'.$fragment ; return array($domainLevel,$tophost,$host,$httpurl);}
--------------------------------------------------------------------------------------------------------------
2012-12-19补充:
1)最新的更新版在 http://blog.csdn.net/default7/article/details/8332612
2)第7行代码那个empty多显示了,可以直接点击看源码。
-------------------------------------------------------------------------------------------------------------
上一篇文章里面的那个函数有点问题,修改了一下~
if(!function_exists("parseHost")){ function parseHost($httpurl) { $httpurl = strtolower( trim($httpurl) ); if( empty( $httpurl ) ) return ; $regx1 = '/https?:\/\/(([^\/\?#&]+\.)?([^\/\?#&\.]+\.)(com\.cn|org\.cn|net\.cn|com\.jp|co\.jp|com\.kr|com\.tw)(\:[0-9]+)?)\/?/i'; $regx2 = '/https?:\/\/(([^\/\?#&]+\.)?([^\/\?#&\.]+\.)(cn|com|org|info|us|fr|de|tv|net|cc|biz|hk|jp|kr|name|me|tw|la)(\:[0-9]+)?)\/?/i'; $host = $tophost = ''; if(preg_match($regx1,$httpurl,$matches)) { $host = $matches[1]; } elseif(preg_match($regx2, $httpurl, $matches)) { $host = $matches[1]; } if($matches) $tophost = $matches[2] == 'www.' ? $host:$matches[3].$matches[4].$matches[5]; return array($host,$tophost); }}
- 获取顶级域名修正版,parseHost() (更新日期2013-1-3)
- PHP 获取顶级域名 获取域名的函数 parseHost()
- 获取顶级域名
- 根据url获取顶级域名
- PHP获取顶级域名,获取域名级别,更正版!v3
- python获取顶级域名的方法
- java获取URL中的顶级域名domain
- js获取顶级域,一级域名
- javascript提取顶级域名 js获取一级域名
- 顶级域名
- tk域名ml域名ga域名cf域名免费顶级域名获取及域名解析绑定IP发布网站
- 获取顶级域名的java实现的函数
- 获取PHP所包含页面的顶级域名
- PHP和织梦正则preg_match获取顶级域名
- 二级域名、一级域名、顶级域名
- 花生壳绑定顶级域名
- 【转】顶级域名
- apache顶级域名跳转
- SQL注入专题--整理帖
- 让MATLAB响起来~
- javascript基础属性
- SQL Server注入大全及防御
- http://codeforces.com/problemset/problem/4/A
- 获取顶级域名修正版,parseHost() (更新日期2013-1-3)
- 复用类二种到达这一目标的方法
- Android Intent
- APPWeb+PHP5+SQLite3在S3C6410上移植之四
- http://codeforces.com/problemset/problem/4/B
- UML和RUP之间的那点事
- (acm协会课程笔记)归并算法
- 深入理解proc文件系统
- 原型继承