2012-08-31 28 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存在它。

相關問題