وجدت نفس الكود بالضبط لكن ليس بأسمك

https://gist.github.com/pocesar/5366899

عموماً هناك حل اسهل للنطاقات ليس للـ ip او اسماء العناوين المحلية كـ http://localhost او http://test

اظنني قمت بالتعديل عليه مسبقاً ليدعم الـ Ip و الاسماء. لكن لا اذكر اين حفظت الدالة.

    $url = "http://test.test2.reashidf.com.sa/hello.php";

    function get_domain($url)
    {
      $pieces = parse_url($url);
      $domain = isset($pieces['host']) ? $pieces['host'] : '';
      if (preg_match('/(?<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
        return $regs['domain'];
      }
      return false;
    }


    echo get_domain($url);

وجدته هنا: http://stackoverflow.com/questions/1201194/php-getting-domain-name-from-subdomain

وتستطيع اختباره على الامثلة التي طرحها صاحب الكود الذي وضعته كا التالي:

    function get_domains($domains){
        for($i =0; $i < count($domains); $i++){
            $result = (!get_domain($domains[$i]))? '<span style="color:red">NULL</span>': get_domain($domains[$i]);
            echo '<b>Given</b>: '. $domains[$i]. ' <b>Result</b>: '. $result . '<br>';

        }
    }



    $urls = array(
    'http://www.example.com',
    'http://example.com',
    'http://example.com.br',
    'http://www.example.com.br',
    'http://www.example.gov.br',
    'http://localhost',
    'http://www.localhost',
    'http://subdomain.localhost',
    'http://www.subdomain.example.com',
    'http://subdomain.example.com',
    'http://subdomain.example.com.br',
    'http://www.subdomain.example.com.br',
    'http://www.subdomain.example.biz.br',
    'http://subdomain.example.biz.br',
    'http://subdomain.example.net',
    'http://www.subdomain.example.net',
    'http://www.subdomain.example.co.kr',
    'http://subdomain.example.co.kr',
    'http://example.co.kr',
    'http://example.jobs',
    'http://www.example.jobs',
    'http://subdomain.example.jobs',
    'http://insane.subdomain.example.jobs',
    'http://insane.subdomain.example.com.br',
    'http://www.doubleinsane.subdomain.example.com.br',
    'http://www.subdomain.example.jobs',
    'http://test',
    'http://www.test',
    'http://subdomain.test',
    'http://www.detran.sp.gov.br',
    'http://www.mp.sp.gov.br',
    'http://ny.library.museum',
    'http://www.ny.library.museum',
    'http://ny.ny.library.museum',
    'http://www.library.museum',
    'http://info.abril.com.br',
    'http://127.0.0.1',
    'http://::1'
    );

    get_domains($urls);

وجدت نفس الكود بالضبط لكن ليس بأسمك

احببت اعادة طرحه .. فقط

وشكرا للاضافة ... فعلا استفدت ^_^

PHP

مجتمع مخصص للغة الـ PHP

3.34 ألف متابع