1

たとえば、次のURLがある場合、任意のURLのホスト名を取得したいと思います

$url = "http://www.google.com";

次に、すべてのタイプの URL に適用できるように、ドットのgoogle.と拡張ドットの前にあるものだけを取得したいと考えています。.

結果は次のようになりますgoogle。これには正規表現が必要になるか、何らかの方法でそれを行う方法が必要になると思います、ありがとう。

4

2 に答える 2

7

あなたが試すことができます

echo __extractName("http://google.com"); 
echo __extractName("http://office1.dept1.google.com");
echo __extractName("http://google.co.uk");


function __extractName($url)
{
  $domain = parse_url($url , PHP_URL_HOST);
  if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $list)) {
    return substr($list['domain'], 0,strpos($list['domain'], "."));
  }
  return false;
}

出力

google
google 
google 
于 2012-10-02T11:38:14.640 に答える
2

URLを構成するさまざまなコンポーネントの連想配列を返すPHPのparse_url()関数を確認する必要があります。

$url = "http://www.google.com";
print_r(parse_url($url)); 

次の配列をエコーし​​ます。

Array ( [scheme] => http [host] => www.google.com ) 

上記の関数はあなたにスタートを与えるだけです。ここから取得する方法については、次のStackoverflowアーカイブを確認してください。

PHPがサブドメインからドメイン名を取得する

PHPでドメイン名(サブドメインではない)を取得する

URLのサブドメインを取得するPHP関数

編集(さらにいくつかのアーカイブ-あなたが何をグーグル/試したかわかりません)

URLからドメイン名を取得する方法

HTTP_REFERERからスキームとホストを抽出します

于 2012-10-02T11:22:49.723 に答える