PHP-php中如何使用正则表达式匹配URL中的域名?

发布于 2016-12-29 23:43:36 字数 0 浏览 1047 评论 2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2017-04-06 02:19:21

这个在百度可以找到很多方案,说下我的做法:

 <?php
// 从 URL 中取得主机名
preg_match("/^(http://)?([^/]+)/i", "http://www.php.net/index.html", $matches);
$host = $matches[2];
// 从主机名中取得后面两段
preg_match("/[^./]+.[^./]+$/", $host, $matches);
echo "domain name is: {$matches[0]}n";
?>

执行后输出:domain name is: php.net

甜柠檬 2017-01-04 22:49:06

为啥要用正则呢,php有自带函数呀

$domain = parse_url($url, PHP_URL_HOST);

如果再精确点,考虑一下子域名:

$parseUrl = parse_url($url);
$domain = trim($parseUrl['host'] ? $parseUrl['host'] : array_shift(explode('/', $parseUrl['path'], 2)));

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文