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 回答