Bei der Entwicklung eines WordPress-Themes müssen wir häufig den Domänennamen der ersten Ebene oder den Domänennamen der obersten Ebene in der URL-Adresse erhalten. Diese Funktion ist insbesondere bei der Überprüfung von Berechtigungen sehr wichtig. Obwohl PHP über viele integrierte superglobale Variablen verfügt, können wir damit den Top-Level-Domainnamen nicht einfach ermitteln. Im Folgenden können wir über eine benutzerdefinierte Funktion abfangen, was wir benötigen.
/**
* Erhalten Sie einen Top-Level-Domainnamen
*
* @param string $url Domänenname HOST, zum Beispiel: www.iowen.cn, www.baidu.com
* @return string Domänenname der obersten Ebene, z. B.: iowen.cn, baidu.com
*/
Funktion 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','avocat.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“, „edu.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',' gwangju.kr','gx.cn','gyeongbuk.kr','gyeonggi.kr','gyeongnam.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 = explosion(".", $url);
if (count($url_arr) <= 2) {
$host = $url;
} sonst {
$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;
}
}
return $host;
}