我試圖從鏈接獲得該網站的名字從鏈接獲取站點名稱通過的preg_match
例如
我有這個鏈接
http://stackoverflow.com
http://www.google.com
我希望得到這個結果
stackoverflow
google
我正在嘗試preg_match,但我有表達式的問題
我試圖從鏈接獲得該網站的名字從鏈接獲取站點名稱通過的preg_match
例如
我有這個鏈接
http://stackoverflow.com
http://www.google.com
我希望得到這個結果
stackoverflow
google
我正在嘗試preg_match,但我有表達式的問題
你不需要預浸:
$parsed = parse_url($url);
$host = $parsed['host'];
E:這也將有.COM,但你可以修剪掉的頂級域名很容易,你可以將整個域進行匹配。
這並不像您想象的那樣微不足道。你舉的例子只有.com
頂級域名,所以如果你限制它,你可以做到這一點,如:
$result = preg_replace('(^(.+\.)?([^.]+)\.com$)', '$2', parse_url($subject, PHP_URL_HOST));
這將返回
stackoverflow
例如。但是,如果你想覆蓋常見的域名後綴,這並不重要。您會在Mozilla中找到已知後綴的列表,它是PSL - Public Suffix List。它有一些特殊的語法,a PHP library存在它。
hello Collin,感謝您的幫助,但我需要TLD名稱,但我需要它(google)not(google.com) –
爆炸'。'並修剪數組的末尾;你不得不提防像.co.uk這樣的TLD,儘管 –
$ parsed = explode('。',$ parsed,2); $解析= $ [0]解析; –