ホームページ  >  記事  >  バックエンド開発  >  PHPでURLのドメイン名を取得する2つの方法

PHPでURLのドメイン名を取得する2つの方法

WBOY
WBOYオリジナル
2016-06-20 13:03:131349ブラウズ

方法 1:

カスタム関数はいつでも書き換えられるという利点がありますが、一部のドメイン名が解決されない可能性があるという欠点があります

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;
}
}
}

方法 2:

組み込み関数を使用する利点は、使いやすいことです。これが私が今使用しているものです

www が不要な場合は、str_replace で置き換えることができます

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。