高效PHP脚本:精确提取URL中的根域名

在处理网络数据时,经常需要从完整的URL中提取根域名。传统的方法是通过匹配域名后缀,但这种方法不仅繁琐,而且难以跟上不断更新的后缀列表。本文将介绍一种使用PHP正则表达式来精确提取根域名的方法,它简单、高效,且适用于大多数情况。

PHP函数详解

/**
 * 提取URL中的根域名
 * @param string $url 需要处理的完整URL地址
 * @param bool $tld 是否包含顶级域名后缀
 * @return string|false 根域名或false
 */
function getBaseDomainByUrl($url, $tld = false)
{
    $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, $m)) {
        return ($tld === true) ? substr($m['domain'],($pos = strpos($m['domain'], '.')) !== false ? $pos + 1 : 0) : $m['domain'];
    }
    return false;
}

正则表达式解析

  • [a-z0-9][a-z0-9\-]{1,63}:匹配域名的开头字符,可以是字母或数字,后面跟着1到63个字母、数字或短横线。

  • \.[a-z\.]{2,6}:匹配域名的后缀,包括点号和2到6个字母或点号的组合,代表顶级域名。文章来源地址https://www.toymoban.com/article/740.html

实用示例

// 示例1:提取带www的域名
echo getBaseDomainByUrl('https://www.toymoban.com'); // 输出:toymoban.com

// 示例2:提取无www的域名
echo getBaseDomainByUrl('https://toymoban.com'); // 输出:toymoban.com

// 示例3:提取带顶级域名后缀
echo getBaseDomainByUrl('https://www.toymoban.com.cn', true); // 输出:toymoban.com.cn

到此这篇关于高效PHP脚本:精确提取URL中的根域名的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/article/740.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用Python从URL中提取域名的方法

    本文将使用实际的例子来解释Python的urlparse() 函数来解析和提取URL中的域名。我们还将讨论如何提高我们解析 URL 的能力和使用它们的不同组件。 urlparse() 方法是Python的urllib 模块的一部分,当你需要将URL拆分成不同的组件并将它们用于不同的目的时非常有用。让我们看一下这

    2024年02月09日
    浏览(6)
  • NeRFMeshing - 精确提取NeRF中的3D网格

    NeRFMeshing - 精确提取NeRF中的3D网格

    准确的 3D 场景和对象重建对于机器人、摄影测量和 AR/VR 等各种应用至关重要。 NeRF 在合成新颖视图方面取得了成功,但在准确表示底层几何方面存在不足。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 我们已经看到了最新的进展,例如 NVIDIA 的 Neuralangelo,但也有 NeRFMeshing,它

    2024年02月11日
    浏览(8)
  • 用NeRFMeshing精确提取NeRF网络中的3D网格

    用NeRFMeshing精确提取NeRF网络中的3D网格

    准确的 3D 场景和对象重建对于机器人、摄影测量和 AR/VR 等各种应用至关重要。 NeRF 在合成新颖视图方面取得了成功,但在准确表示底层几何方面存在不足。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 我们已经看到了最新的进展,例如 NVIDIA 的 Neuralangelo,但也有 NeRFMeshing,它

    2024年02月11日
    浏览(8)
  • php:如何在curl方式下url请求域名使用指定ip地址来访问某个服务器

            最近遇到一个问题,就是如何在curl请求某个域名的时候,可以指定某个ip访问,因为很多时候咱们的域名对应的是集群,会有很多服务器ip,并不一定是刚好访问到你想要的服务器,那么该如何解决呢? 例如:正常情况下,假设我们这样发送请求,如何指定访问

    2024年02月15日
    浏览(10)
  • 浅谈linux中的根文件系统(rootfs的原理和介绍)【转】

    浅谈linux中的根文件系统(rootfs的原理和介绍)【转】

    浅谈linux中的根文件系统(rootfs的原理和介绍)【转】 转自:https://www.cnblogs.com/sky-heaven/p/13742173.html linux中有一个让不少初学者都不是特别清楚的概念,叫作“根文件系统”。我接触linux前先后后也好几年了,可是对这个问题,至今也不是特别的清楚,至少无法给出一个很全面

    2024年01月21日
    浏览(17)
  • 探索全桥电机驱动模块:实现精确控制与高效驱动

    探索全桥电机驱动模块:实现精确控制与高效驱动

    全桥电机驱动模块是一种在现代工程应用中广泛使用的电机驱动方式。对于需要精确控制和高效驱动的场景,如机器人、无人机、电动车等,全桥电机驱动模块提供了理想的解决方案。本文将介绍全桥电机驱动模块的原理和实际应用场景,并对几种常见的全桥驱动芯片进行详

    2024年02月12日
    浏览(11)
  • 微信小程序报错 600002 url域名不在安全域名列表中

    微信小程序报错 600002 url域名不在安全域名列表中

            微信小程序测试版使用真机调试模式报错 600002,查询微信开放文档,600002对应错误信息为\\\"url域名不在安全域名列表中\\\",解决方法:使用真机调试时在控制台设置中勾选\\\" 不校验合法域名、web-view(业务域名) \\\",如图 :  

    2024年02月11日
    浏览(10)
  • 钉钉提示 redirect_url的域名不在appid的安全域名内

    钉钉提示 redirect_url的域名不在appid的安全域名内

    1、需要在《钉钉开放平台》- 开发者后台设置《钉钉扫码登陆功能》 2、如果钉钉界面没有钉钉扫码登陆功能-》点击浏览器右下角-》《返回旧版》 3、备注:当前访问的IP地址跟钉钉扫码登陆功能填写的IP地址需保持一致。如果当前访问IP地址是http://192.168.1.108/,那钉钉开发者后

    2024年01月21日
    浏览(4)
  • js获取当前域名、Url、相对路径和参数

    由于获取到的当前域名不包括 http://,所以把获取到的域名赋给 a 标签的 href 时,别忘了加上 http://,否则单击链接时导航会出错。 浏览器地址栏显示的是什么,获取到的 url 就是什么。 首先获取 Url,然后把 Url 通过 // 截成两部分,再从后一部分中截取相对路径。如果截取到

    2024年02月16日
    浏览(9)
  • 微信小程序全局配置API域名和url

    微信小程序和后台进行交互是通过API请求数据,所以API请求地址的管理 就非常重要,如果在wx.request的时候使用写url地址的方式,那后面要是api地址变化了,就要到每个有请求的地方进行修改url,是大项目的话就会很麻烦,如果配置了全局请求地址修改起来就简单很多。 1.项

    2024年02月12日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包