2012-08-31 25 views
-1

我试图从链接获得该网站的名字从链接获取站点名称通过的preg_match

例如

我有这个链接

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

我希望得到这个结果

stackoverflow 
google 

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

回答

3

你不需要预浸:

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

E:这也将有.COM,但你可以修剪掉的顶级域名很容易,你可以将整个域进行匹配。

+0

hello Collin,感谢您的帮助,但我需要TLD名称,但我需要它(google)not(google.com) –

+0

爆炸'。'并修剪数组的末尾;你不得不提防像.co.uk这样的TLD,尽管 –

+0

$ parsed = explode('。',$ parsed,2); $解析= $ [0]解析; –

0

这并不像您想象的那样微不足道。你举的例子只有.com顶级域名,所以如果你限制它,你可以做到这一点,如:

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

这将返回

stackoverflow 

例如。但是,如果你想覆盖常见的域名后缀,这并不重要。您会在Mozilla中找到已知后缀的列表,它是PSL - Public Suffix List。它有一些特殊的语法,a PHP library存在它。

相关问题