2015-01-27 2 views
0

Я написал функцию для проверки того, является ли данный URL-адрес поддоменом или нет.PHP Проверьте, является ли URL-адрес субдомена или нет.

<?php 

header("Content-Type: text/plain"); 

function isSubDomain($myDomain) 
{ 

    $myDomain=parse_url($myDomain)["host"]; 

    if(strstr($myDomain,'.',true)=='www') 
    { 
     return 0; 
     break; 
    } 

    $domainExtentions=array(
          '.com', 
          '.net', 
          '.org', 
          '.co.uk' 
          ); 

    foreach($domainExtentions as $extention) 
    { 
     if($extention==substr($myDomain,-(strlen($extention)))) 
     { 
      $mydomain=substr($myDomain,0,-(strlen($extention))); 
     } 

    } 

    if (substr_count($mydomain,'.')>0) 
    { 
     return 1; 
    } 

} 

//Sub-domain exists 
    if(isSubDomain('http://SUBDOMAIN.hezi-gangina.com/pua/pug/index.php?q=balataLeStus')) 
    { 
     echo'This url contains sub-domain!'; 
     echo "\r\n"; 
    } 
    else 
    { 
     echo'This url doesn\'t have any sub-domain!'; 
     echo "\r\n"; 
    } 

//No subdomain (www)  
    if(isSubDomain('http://www.hezi-gangina.com/pua/pug/index.php?q=haMetrixHeshbon')) 
    { 
     echo'This url contains sub-domain!'; 
     echo "\r\n"; 
    } 
    else 
    { 
     echo'This url doesn\'t have any sub-domain!'; 
     echo "\r\n"; 
    } 

//Non www url (and no sub-domain) 
    if(isSubDomain('http://hezi-gangina.com/pua/pug/index.php?q=einLehaSikuy')) 
    { 
     echo'This url contains sub-domain!'; 
     echo "\r\n"; 
    } 
    else 
    { 
     echo'This url doesn\'t have any sub-domain!'; 
     echo "\r\n"; 
    } 

Похоже, работает отлично (и от курса расширение домена должно быть полностью обновлено), и что приносит вопрос ...

  1. Есть ли «право нестандартно» команда PHP который хранит массив со всеми расширениями домена или мне нужно обновить его вручную?

  2. ПОСЛЕ удаления всех возможных расширений с любого заданного URL И домен не начинается с www ... Возможно ли, что это не будет поддомен?

+0

Похоже, что ваш вопрос не о коде, который вы опубликовали. Можете ли вы привести примеры, чтобы поддержать ваши вопросы? Например, покажите пример URL-адреса для вопроса 2. – dg99

+0

@ dj99 Другими словами, я спрашиваю, возможно ли, что домен будет: http://my.domain.co.uk/, а «мой» не будет субдомен (часть домена)? – davidmarko

+0

Да! Я только что проверил ... Можно зарегистрировать домен с помощью. как часть домена, что делает его НЕВОЗМОЖНО определять, является ли он реальным поддоменом или является частью имени домена. – davidmarko

ответ

0

Что делать, если вы взорвали его на «.»? Вы можете посмотреть, будет ли следующая последняя часть .co определять, является ли расширение длиной в одну или две части длинными. Вы можете посмотреть на первую часть, чтобы увидеть, является ли это www, а затем подсчет частей может рассказать вам, является ли это субдоменом.

Смежные вопросы