我正在尝试从链接中获取网站名称
例如
我有这个链接
http://stackoverflow.com
http://www.google.com
我想得到这个结果
stackoverflow
google
我正在尝试preg_match,但我的表达式有问题
答案 0 :(得分:3)
您不需要preg:
$parsed = parse_url($url);
$host = $parsed['host'];
e:这也会有.com但您可以更轻松地修剪TLD,而不是整个域匹配。
答案 1 :(得分:0)
这并不像你想象的那么简单。您的示例仅包含.com
TLD,因此如果您将其限制为,则可以执行以下操作:
$result = preg_replace('(^(.+\.)?([^.]+)\.com$)', '$2', parse_url($subject, PHP_URL_HOST));
哪会返回
stackoverflow
例如,。但是,如果要覆盖常见的域后缀,这不是一件容易的事。你会在Mozilla找到一个已知后缀的列表,它是PSL - Public Suffix List。它有一些特殊的语法,并且存在a PHP library。