当前位置: 首页 > 面试题库 >

在php中获取域名(不是子域名)

阳建弼
2023-03-14
问题内容

我的网址可以是以下任何一种格式:

http://example.com
https://example.com
http://example.com/foo
http://example.com/foo/bar
www.example.com
example.com
foo.example.com
www.foo.example.com
foo.bar.example.com
http://foo.bar.example.com/foo/bar
example.net/foo/bar

本质上,我需要能够匹配任何常规URL。我如何example.com
通过一个正则表达式从所有这些文件中提取(或.net,无论tld刚好是什么。我需要它与任何TLD一起使用)?


问题答案:

好了,您可以parse_url用来获取主机:

$info = parse_url($url);
$host = $info['host'];

然后,您可以做一些有趣的事情,仅获取TLD和主机

$host_names = explode(".", $host);
$bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];

不是很优雅,但应该可以。

如果您想要一个解释,请按照以下步骤进行:

首先,我们http://使用parse_url的功能来抓取方案之间的所有内容(,等等),…解析URL。:)

然后我们采用主机名,并根据句点所在的位置将其分成一个数组,因此test.world.hello.myname将变为:

array("test", "world", "hello", "myname");

之后,我们获取数组(4)中的元素数。

然后,我们从中减去2得到倒数第二个字符串(example在您的示例中,主机名或)

然后,我们从中减去1以获得最后一个字符串(因为数组键从0开始),也称为TLD

然后,我们将这两部分与一个句点结合起来,您便有了基本主机名。



 类似资料:
  • 问题内容: 我需要编写一个函数来解析包含域名的变量。最好用一个示例来说明,变量可以包含以下任何内容: 但是当通过我的函数传递时,所有这些都必须返回example.com或example.co.uk,基本上是根域名。我敢肯定我之前已经做过,但是我已经搜索Google约20分钟了,找不到任何东西。任何帮助,将不胜感激。 编辑:忽略.co.uk,假定通过此功能的所有域都具有3个字母的TLD。 问题答案:

  • 问题内容: 需要一种使用Python urlparse从URL提取不带子域的域名的方法。 例如,我想从完整的网址中提取,例如。 我似乎可以看到的最接近的是属性,但其中包括子域,在此示例中为。 我知道可以编写一些自定义字符串操作将www.google.com转换为google.com,但是我想避免在此任务中进行手工字符串转换或正则表达式。(这样做的原因是,我对url形成规则不够熟悉,以至于没有信心在

  • 主要内容:示例子域是域名的扩展名,可以转发到URL或指向主机帐户或不同服务器中的IP地址和目录。 子域功能与主域名分开。 我们可以使用子域创建网站的区域。 示例 可以在网站上创建一个名为“移动端”的博客子域,例如:除了已经存在的 www.yiibai.com/m 之外,还可以通过URL - http://m.yiibai.com 访问该移动端网站。 理论上,我们可以为每个域名添加无限的子域名。 也可以添加多个子

  • X1.0新增 sp_get_host() 功能: 返回带协议的域名 参数: 无 返回: 类型string 带协议的域名,如http://www.thinkcmf.com

  • 子域是一个域,它是主域的一部分并存在于同一服务器中。 我们也可以说它是第二个网站,它位于主域之下,但它可能与根网站有任何关系。 我们可以在这个子域下运行一个新网站。 For Example - blog.wenjiangs.com是根域wenjiangs.com的子域,blog.tutorialpoint.com也可以通过tutorialpoint.com/blog访问。 创建子域 Step 1

  • 我打算为同一个网站买两个域名。根据使用的域,我计划在页面上提供略有不同的数据。是否有一种方法让我检测实际的域名,该网页正在加载,以便我知道什么,以更改我的内容? 我四处寻找类似的东西,但大多数都不是我想要的。 例如当使用 在JSFiddle上,它返回 即实际路径或其他任何路径。