我想從url獲取域名擴展名。例如。 .COM,.NET等從URL獲取域名擴展名?
我已經使用這個:
$extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
我只是想知道是否有使用parse_url更好的辦法?
我想從url獲取域名擴展名。例如。 .COM,.NET等從URL獲取域名擴展名?
我已經使用這個:
$extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
我只是想知道是否有使用parse_url更好的辦法?
您可以輕鬆地分割請求的URI是這樣的:
function tld($uri) {
$parts = explode('.', $uri);
return (sizeof($parts) ? ('.' . end($parts)) : false;
}
所以,你可以這樣做:
if(!tld('googlecom')) // does not contain an ending TLD
if(tld('google.com')) // this is a valid domain name; output: ".com"
或者,你可以使用:
echo $_SERVER['SERVER_NAME'];
所以在我看來,你是最好的例子鼠尾草是:
echo tld($_SERVER['SERVER_NAME']);
使用parse_url()
。類似於:
$host = parse_url('http://www.google.co.uk/test.html');
preg_match('/(.*?)((\.co)?.[a-z]{2,4})$/i', $host['host'], $m);
$ext = isset($m[2]) ? $m[2]: '';
編輯:用這個answer的正則表達式修復。像.co.uk這樣的擴展也被支持。
更好地使用$ _SERVER ['HTTP_HOST'] – Evert
你想如何處理'.co.uk'? – PeeHaa