我想从 url 获取域扩展名。例如。.com、.net 等
我用过这个:
$extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
我只是想知道是否有更好的方法使用 parse_url?
我想从 url 获取域扩展名。例如。.com、.net 等
我用过这个:
$extension = pathinfo($_SERVER['SERVER_NAME'], PATHINFO_EXTENSION);
我只是想知道是否有更好的方法使用 parse_url?
使用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]: '';
编辑:用这个答案的正则表达式修复。也支持像 .co.uk 这样的扩展名。
您可以像这样轻松拆分请求的 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']);