php

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

Post Author: Oral ÜNAL

Web geliştirmeyi başta meslek olarak hayal eden fakat daha sonra bir hobi haline getiren birisiyim işte.

Yorum yazma sırası sizde!