Home >php教程 >PHP源码 >php获取url地址中的域名几种方法

php获取url地址中的域名几种方法

WBOY
WBOYOriginal
2016-06-08 17:21:223252browse

在由变量传过来的一个完整的url地址,我们需要取得地址中的域名,这里可以使用parse_url函数来处理,当然有用户使用正则来解决都是可以,下面看两个例子。

<script>ec(2);</script>

方法1php自带函数(parse_url)

 代码如下 复制代码

$Url=’http://www.111cn.net/ index.html’;
$tempu=parse_url($Url);
$message=$tempu['host'];
echo $message;
//输出结果就是 www.111cn.net

方法2自定义函数

 代码如下 复制代码

function get_domain($url)
{
$pattern = "/[/w-]+/.(com|net|org|gov|biz|com.tw|com.hk|com.ru|net.tw|net.hk|net.ru|info|cn|com.cn|net.cn|org.cn|gov.cn|mobi|name|sh|ac|la|travel|tm|us|cc|tv|jobs|asia|hn|lc|hk|bz|com.hk|ws|tel|io|tw|ac.cn|bj.cn|sh.cn|tj.cn|cq.cn|he.cn|sx.cn|nm.cn|ln.cn|jl.cn|hl.cn|js.cn|zj.cn|ah.cn|fj.cn|jx.cn|sd.cn|ha.cn|hb.cn|hn.cn|gd.cn|gx.cn|hi.cn|sc.cn|gz.cn|yn.cn|xz.cn|sn.cn|gs.cn|qh.cn|nx.cn|xj.cn|tw.cn|hk.cn|mo.cn|org.hk|is|edu|mil|au|jp|int|kr|de|vc|ag|in|me|edu.cn|co.kr|gd|vg|co.uk|be|sg|it|ro|com.mo)(/.(cn|hk))*/";
preg_match($pattern, $url, $matches);
if(count($matches) > 0)
{
return $matches[0];
}else{
$rs = parse_url($url);
$main_url = $rs["host"];
if(!strcmp(long2ip(sprintf("%u",ip2long($main_url))),$main_url))
{
return $main_url;
}else{
$arr = explode(".",$main_url);
$count=count($arr);
$endArr = array("com","net","org");//com.cn net.cn 等情况
if (in_array($arr[$count-2],$endArr))
{
$domain = $arr[$count-3].".".$arr[$count-2].".".$arr[$count-1];
}else{
$domain = $arr[$count-2].".".$arr[$count-1];
}
return $domain;
}
}
}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn