現在ページにアクセスしているドメイン名を取得するだけの場合は、php で HTTP_HOST 関数を使用するだけで取得できます。 URL ルート ドメイン名を抽出するには、次のように正規化する必要があります。具体的な例をいくつか見てみましょう。
現在のドメイン名を取得するのは非常に簡単です:
コードは次のとおりです:
//現在のドメイン名を取得します:
エコー $_SERVER['SERVER_NAME'];
//ソースURLを取得します。つまり、クリックするとこのページの前のページURLに移動します
echo $_SERVER["HTTP_REFERER"];
$_SERVER['REQUEST_URI'];//現在のドメイン名のサフィックスを取得します
$_SERVER['HTTP_HOST'];//現在のドメイン名を取得します
dirname(__FILE__);//現在のファイルの物理パスを取得します
dirname(__FILE__)."/../";//現在のファイルの上位物理パスを取得します
?>
例1
コードは次のとおりです:
関数getUrlRoot($url){
#頭としっぽを追加します
$url = $url . "/";
preg_match("/((w*)://)?w*.?([w|-]*.(com.cn|net.cn|gov.cn|org.cn|com|net|cn| org|asia|tel|mobi|me|tv|biz|cc|name|info))
//", $url, $ohurl);
#JudgeIP
if($ohurl[3] == ''){
preg_match("/((d+.){3}d+)//", $url, $ohip);
$ohip[1] を返す;
}
$ohurl[3]を返す;
}
例2
コードは次のとおりです:
/**
* ルートドメイン名を取得します
* @param type $domain ドメイン名
* @return string ルートドメイン名を返します
*/
関数 GetUrlToDomain($domain) {
$re_domain = '';
$domain_postfix_cn_array = array("com", "net", "org", "gov", "edu", "com.cn", "cn");
$array_domain =explode(".", $domain);
$array_num = count($array_domain) - 1;
if ($array_domain[$array_num] == 'cn') {
if (in_array($array_domain[$array_num - 1], $domain_postfix_cn_array)) {
$re_domain = $array_num - 2 . $array_domain[$array_num] ."
} 他 {
$re_domain = $array_domain[$array_num - 1] ." .
}} 他 {
$re_domain = $array_domain[$array_num - 1] ." .
}
$re_domain を返す;
}
http://www.bkjia.com/PHPjc/903236.html
www.bkjia.com