Skip to content

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

TR Kodlama GitHub'da!

TR Kodlama'da yer alan makaleleri GitHub üzerinden düzenleyebileceğinizi biliyor muyudunuz? Harika değil mi? Bu makale ile ilgili düzenleme yapmak isterseniz aşağıdaki butona tıklayınız!

GitHub'da Görüntüle ve Düzenle!