在 PHP 中从子域中提取域名
在 PHP 中,从子域中获取根域名是一项常见任务。考虑这样一个场景,您遇到如下变量:
here.example.com example.com example.org here.example.org
您的目标是将这些值转换为其根域名,例如 example.com 或 example.org。为此,需要一个精心设计的函数。
解决方案
以下代码片段演示了一个名为 get_domain() 的函数,该函数可以有效地提取根域名:
<code class="php">function get_domain($url) { $pieces = parse_url($url); $domain = isset($pieces['host']) ? $pieces['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; }</code>
该函数利用内置的 parse_url() 函数来分解 URL 并检索主机组件。随后,它使用正则表达式来验证和提取根域名,确保其遵守常见的域名命名约定。
通过使用所需的 URL 调用 get_domain(),您可以轻松隔离根域名:
<code class="php">print get_domain("http://somedomain.co.uk"); // outputs 'somedomain.co.uk'</code>
如果 URL 不符合可接受的域结构,该函数会通过返回 false 来优雅地处理这些边缘情况。
以上是如何在 PHP 中从子域中提取根域名?的详细内容。更多信息请关注PHP中文网其他相关文章!