2

ドメイン名を取得するには、次のコードを使用しています:

<?php
  $myURL   = 'http://answers.yahoo.com/question/index?qid=20130406061745AAmovgl';
  $pattern = '/\w+\..{2,3}(?:\..{2,3})?(?:$|(?=\/))/i';
  if (preg_match($pattern, $myURL, $domain) === 1) {
    $domain = $domain[0];
  }
  $ndomain = "http://$domain";
  echo $ndomain;
?>

しかし、出力されます:http://yahoo.com
しかし、どうすればhttp://answers.yahoo.comこのサブドメインを正確に出力できますか。

4

2 に答える 2

8

まさにこのことを行うために存在するため、代わりにparse_url関数を使用する必要があります。

echo parse_url( $url, PHP_URL_HOST );
于 2013-04-06T15:56:22.827 に答える
3

parse_url()次のように使用できます。

$urlData = parse_url($myURL);
$host = $urlData['host']; //domain + subdomain
于 2013-04-06T16:03:11.443 に答える