Reklam
PHP ile Alan Adını Alma

PHP ile Alan Adını Alma

Merhaba arkadaşlar,
URL’lerin sadece alan adlarını almak istediğiniz zamanlar olabilir. Fakat bazı durumlarda subdomain.domain.tld.tld yapısındaki URL’lerden domain kısmını çekmek zorlaşır.. Aslında zor değildir fakat o yapıyı bulmak zor olabilir Çünkü girilen URL’ler aşağıdaki formatlarda olabilir:

  • http://www.trkodlama.com
  • http://www.trkodlama.com.tr
  • http://trkodlama.com
  • http://trkodlama.com.tr
  • http://sub.trkodlama.com
  • http://sub.trkodlama.com.tr

Hal böyle olunca işin içinden çıkılmaz bir hal alır.. If else’ler havada uçuşur. Bunun için sizlerle basit ve kullanışlı bir fonksiyon paylaşıyorum:

function domain($url){
 $tld2 = array('wattle.id.au','emu.id.au','csiro.au','name.tr','conf.au','info.tr','info.au','gov.au','k12.tr','lel.br','ltd.uk','mat.br','jor.br','med.br','net.hk','net.eg','net.cn','net.br','net.au','mus.br','mil.tr','mil.br','net.lu','inf.br','fnd.br','fot.br','fst.br','g12.br','gb.com','gb.net','gen.tr','ggf.br','gob.mx','gov.br','gov.cn','gov.hk','gov.tr','idv.tw','imb.br','ind.br','far.br','net.mx','se.com','rec.br','qsl.br','psi.br','psc.br','pro.br','ppg.br','pol.tr','se.net','slg.br','vet.br','uk.net','uk.com','tur.br','trd.br','tmp.br','tel.tr','srv.br','plc.uk','org.uk','ntr.br','not.br','nom.br','no.com','net.uk','net.tw','net.tr','net.ru','odo.br','oop.br','org.tw','org.tr','org.ru','org.lu','org.hk','org.cn','org.br','org.au','web.tr','eun.eg','zlg.br','cng.br','com.eg','bio.br','agr.br','biz.tr','cnt.br','art.br','com.hk','adv.br','cim.br','com.mx','arq.br','com.ru','com.tr','bmd.br','com.tw','adm.br','ecn.br','edu.br','etc.br','eng.br','esp.br','com.au','com.br','ato.br','com.cn','eti.br','edu.au','bel.tr','edu.tr','asn.au','jl.cn','mo.cn','sh.cn','nm.cn','js.cn','jx.cn','am.br','sc.cn','sn.cn','me.uk','co.jp','ne.jp','sx.cn','ln.cn','co.uk','co.at','sd.cn','tj.cn','cq.cn','qh.cn','gs.cn','gr.jp','dr.tr','ac.jp','hb.cn','ac.cn','gd.cn','pp.ru','xj.cn','xz.cn','yn.cn','av.tr','fm.br','fj.cn','zj.cn','gx.cn','gz.cn','ha.cn','ah.cn','nx.cn','tv.br','tw.cn','bj.cn','id.au','or.at','hn.cn','ad.jp','hl.cn','hk.cn','ac.uk','hi.cn','he.cn','or.jp','name','info','aero','edu','org','int','biz','mil','net','com','ua','st','tw','sg','uk','au','za','yu','ws','at','us','vg','as','va','tv','pt','si','sk','ag','sm','ca','su','al','am','tc','th','tm','ro','tn','to','ru','se','sh','eu','dk','ie','il','de','cz','cy','cx','is','it','jp','ke','kr','la','hu','hm','hk','fi','fj','fo','fr','es','gb','eg','ge','ee','gl','ac','gr','gs','li','lk','cd','nl','no','cc','by','br','nu','nz','bg','be','ba','az','pk','ch','ck','cl','lt','lu','lv','ma','mc','md','mk','mn','ms','mt','mx','dz','cn','pl');
 $url_bolumleri = parse_url($url);
 $Domain = $url_bolumleri["host"];
 $sayac = 1;
 do {
$tmp_tld = substr($Domain, -strlen(".".$tld2[$sayac]));
if ($tmp_tld == ".".$tld2[$sayac]) {
$tld = ltrim($tld2[$sayac], ".");
$DomainL = substr($Domain, 0, -(strlen($tld) + 1));
if (strpos($DomainL, ".") === false) {
$subDomain = "";
$sonDomain = $DomainL;
} else {
$Domain_bolumleri = explode(".", $DomainL);
$sonDomain = array_pop($Domain_bolumleri);
} return $sonDomain;
  }
  $sayac++;
 } while ($sayac < count($tld2));
}

Kullanımı da oldukça basittir:

echo domain("http://subdomain.trkodlama.com.tr"); // Ekran çıktısı: trkodlama

Umarım faydalı olmuştur, kolay gelsin


Yorum Yapın

Eposta adresiniz görünmeyecektir.

19 − altı =