WordPress テーマの開発では、URL アドレスのファーストレベル ドメイン名またはトップレベル ドメイン名を取得する必要があることがよくあります。この機能は、特に権限を確認する場合に非常に重要です。 PHP には多くのスーパーグローバル変数が組み込まれていますが、トップレベルのドメイン名を簡単に取得することはできません。以下では、カスタム関数を通じて必要なものをインターセプトできます。
/**
* トップレベルドメイン名の取得
*
* @param string $url ドメイン名 HOST (www.iowen.cn、www.baidu.com など)
* @return 文字列トップレベル ドメイン名(iowen.cn、baidu.com など)
*/
関数 url_root($url=""){
$url = $url ? $url : $_SERVER["HTTP_HOST"];
$dual_host = array('aaa.pro','ac.cn','ac.kr','ac.mu','aca.pro','acct.pro','ae.org','ah.cn','ar.com','avcat.pro','bar.pro','biz.ki','biz.pl','bj.cn','br.com','busan.kr '、'chungbuk.kr'、'chungnam.kr'、'club.tw'、'cn.com'、'co.ag'、'co.am'、'co.at'、'co.bz'、'co.cm'、'co.com'、'co.gg'、'co.gl'、'co.gy'、'co.il'、'co.im'、'co.in'、'co.je'、 'co.kr'、'co.lc'、'co.mg'、'co.ms'、'co.mu'、'co.nl'、'co.nz'、'co.uk'、'co.ve'、'co.za'、'com.af'、'com.ag'、'com.am'、'com.ar'、'com.au'、'com.br'、'com.bz'、'com.cm'、'c om.cn'、'com.co'、'com.de'、'com.ec'、'com.es'、'com.gl'、'com.gr'、'com.gy'、'com.hn'、'com.ht'、'com.im'、'com.ki'、'com.lc'、'com.lv'、'com.mg'、'com.ms'、'com.mu'、'co m.mx'、'com.nf'、'com.pe'、'com.ph'、'com.pk'、'com.pl'、'com.ps'、'com.pt'、'com.ro'、'com.ru'、'com.sb'、'com.sc'、'com.se'、'com.sg'、'com.so'、'com.tw'、'com.vc'、'com .ve','cpa.pro','cq.cn','daegu.kr','daejeon.kr','de.com','ebiz.tw','edu.cn','e du.gl'、'eng.pro'、'es.kr'、'eu.com'、'fin.ec'、'firm.in'、'fj.cn'、'game.tw'、'gangw on.kr','gb.com','gb.net','gd.cn','gen.in','go.kr','gov.cn','gr.com','gs.cn','光州.kr','gx.cn','慶北.kr','京畿.kr','慶南.kr','gz.cn','ha.c n'、'hb.cn'、'he.cn'、'hi.cn'、'hk.cn'、'hl.cn'、'hn.cn'、'hs.kr'、'hu.com'、'hu.net'、 'idv.tw','in.net','incheon.kr','ind.in','info.ec','info.ht','info.ki','info.nf','info.pl','info.ve','jeju.kr','jeonbuk.kr','jeonnam.kr','jl.cn','jp.net','j pn.com'、'js.cn'、'jur.pro'、'jx.cn'、'kg.kr'、'kiwi.nz'、'kr.com'、'law.pro'、'ln.cn ','me.uk','med.ec','med.pro','mex.com','mo.cn','ms.kr','ne.kr','net.af','net.ag','net.am','net.br','net.bz','net.cm','net.cn','net.co','net.ec','net.gg',' net.gl'、'net.gr'、'net.gy'、'net.hn'、'net.ht'、'net.im'、'net.in'、'net.je'、'net.ki'、'net.lc'、'net.lv'、'net.mg'、'net.mu'、'net.my'、'net.nf'、'net.nz'、'net.ph'、'n et.pk'、'net.pl'、'net.ps'、'net.ru'、'net.sb'、'net.sc'、'net.so'、'net.vc'、'net.ve'、'nm.cn'、'no.com'、'nom.ag'、'nom.co'、'nom.es'、'nom.ro'、'nx.cn'、'or.at'、'or.jp ','or.kr','or.mu','org.af','org.ag','org.am','org.bz','org.cn','org.es','org.gg','org.gl','org.gr','org.hn','org.ht','org.il','org.im','org.in','org.je',' org.ki','org.lc','org.lv','org.mg','org.ms','org.mu','org.my','org.nz','org.pk','org.pl','org.ps','org.ro','org.ru','org.sb','org.sc','org.so','org.uk','o rg.vc'、'org.ve'、'pe.kr'、'pro.ec'、'qc.com'、'qh.cn'、'radio.am'、'radio.fm'、're.k r'、'recht.pro'、'ru.com'、'sa.com'、'sc.cn'、'sc.kr'、'sd.cn'、'se.com'、'senet'、'se oul.kr'、'sh.cn'、'sn.cn'、'sx.cn'、'tj.cn'、'tw.cn'、'uk.com'、'uk.net'、'ulsan.kr'、 'us.com'、'us.org'、'uy.com'、'web.ve'、'xj.cn'、'xz.cn'、'yn.cn'、'za.com'、'zj.cn');
$url_arr =explode(".", $url);
if (count($url_arr) <= 2) {
$ホスト = $url;
} それ以外の場合は {
$last = array_pop($url_arr);
$last_1 = array_pop($url_arr);
$last_2 = array_pop($url_arr);
$host = $last_1.'.'.$last;
if (in_array($host, $dual_host)) {
$host = $last_2.'.'.$last_1.'.'.$last;
}
}
$host を返します。
}