-1

我正在尝试从链接中获取站点名称

例如

我有这个链接

http://stackoverflow.com
http://www.google.com

我想得到这个结果

stackoverflow
google

我正在尝试 preg_match,但表达式有问题

4

2 回答 2

3

你不需要怀孕:

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

e:这也将包含 .com,但与匹配整个域相比,您可以更轻松地修剪 TLD。

于 2012-08-31T20:45:11.913 回答
0

这并不像你想象的那么简单。你的例子只有.comTLD,所以如果你限制它,你可以这样做:

$result = preg_replace('(^(.+\.)?([^.]+)\.com$)', '$2', parse_url($subject, PHP_URL_HOST));

哪个会返回

stackoverflow

例如。但是,如果您想涵盖常见的域后缀,这就不那么简单了。你会在 Mozilla 找到一个已知后缀列表,它是PSL - Public Suffix List。它有一些特殊的语法,并且存在一个 PHP 库

于 2012-08-31T21:17:56.277 回答