4

ドメイン名を取得する必要があるのは、URL からのみです (com やその他すべてを除く) 例:

私は持っている:

http://www.subdomain.domain1.com/
www.subdomain.domain2.net
subdomain.subdomain2.domain3.org/
http://domain4.com

PHPで取得したい:

domain1
domain2
domain3
domain4
4

4 に答える 4

9

parse_url()

「PHP_URL_HOST」引数を使用

次に、「。」でexplode()を実行します。結果の配列の最後から2番目の要素を抽出します

于 2012-11-21T14:53:52.770 に答える
0

Shyamの答えは最高です。すべての URL が HTTP で始まっていることを確認し、最後に strtok を追加するだけです (以下を参照)。配列を使用した別のバージョンを次に示します。

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

    return false;
    }

$urls = array(
    'http://www.subdomain.domain1.com/',
    'http://www.subdomain.domain2.net',
    'http://subdomain.subdomain2.domain3.org/',
    'http://domain4.com'
);

// Using foreach + strtok to remove .[domain extensions]

echo "<ul>";

foreach($urls as $url)
    {
    echo "<li>" . strtok(get_domain($url),'.') . "</li>";
    }

echo "</ul>";

これは出力されます:

  • ドメイン1
  • ドメイン2
  • ドメイン3
  • ドメイン4
PS 以下に示すように、関数に strtok を追加できます。

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

    return false;
    }

それから:

$urls = array(
    'http://www.subdomain.domain1.com/',
    'http://www.subdomain.domain2.net',
    'http://subdomain.subdomain2.domain3.org/',
    'http://domain4.com'
);

// Using foreach

echo "<ul>";

foreach($urls as $url)
    {
    echo "<li>" . get_domain($url) . "</li>";
    }

echo "</ul>";

マイナスul/li:

 $urls = array(
        'http://www.subdomain.domain1.com/',
        'http://www.subdomain.domain2.net',
        'http://subdomain.subdomain2.domain3.org/',
        'http://domain4.com'
    );

    // Using foreach
    foreach($urls as $url)
        {
        echo get_domain($url)."<br>";
        }

出力:

domain1
domain2
domain3
domain4

于 2016-10-29T06:36:55.060 に答える