我正在尝试从链接中获取站点名称
例如
我有这个链接
http://stackoverflow.com
http://www.google.com
我想得到这个结果
stackoverflow
google
我正在尝试preg_match,但我的表达式有问题
你不需要怀孕:
$parsed = parse_url($url);
$host = $parsed['host'];
e:这也将具有.com但您可以比匹配整个域更容易修剪 TLD。
这并不像你想象的那么微不足道。您的示例只有 .com
个 TLD,因此如果您将其限制为该 TLD,您可以这样做:
$result = preg_replace('(^(.+'.)?([^.]+)'.com$)', '$2', parse_url($subject, PHP_URL_HOST));
哪个会返回
stackoverflow
例如。但是,如果您想涵盖公共域后缀,这就不那么简单了。您会在Mozilla上找到已知后缀的列表,它是PSL - 公共后缀列表。它有一些特殊的语法,并且存在一个PHP库。