php - 从完整 URL 获取域名

标签 php url

假设有人输入这样的 URL:

http://i.imgur.com/a/b/c?query=value&query2=value

我想返回:imgur.com

不是 i.imgur.com

这是我现在的代码

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

但这会返回 i.imgur.com

最佳答案

检查下面的代码,它应该可以正常工作。

<?php

function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : $pieces['path'];
  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;
}

print get_domain("http://mail.somedomain.co.uk"); // outputs 'somedomain.co.uk'

?>

关于php - 从完整 URL 获取域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16027102/

相关文章:

javascript - SproutCore 的特定 URL

php - 在 Drupal 7 中跳过对节点删除的验证

php - Laravel 生成器给出 : Cannot redeclare generatorFunction()

php - array_intersect 可变数量的数组

ruby-on-rails - 如何在 Rails 中获取 URL 的当前 Controller ?

Asp.net 从 Https 重定向到 Http

c# 在 webbrowser.url 上使用 .ToString() 方法会自动转换 %26 符号?

php - (Cache::lock()) -> get() -- 在什么条件下返回 false?

php - 以编程方式为 WooCommerce 中的特定可变产品设置最小、最大和步长数量

url - URL 中的协议(protocol)名称是否区分大小写?