如何只从 url 获取中心域名

How to get only center domain name from url

我有成千上万的 url,例如我只想从中获取域名

http://google.com

<?php

$url = 'http://google.com';
$host = parse_url($url);
echo '<pre>';
print_r($host['host']);
echo '</pre>';

**//Output google.com**

?>

但我只想从 http://google.com 得到 google 而不是 google.com

请帮忙谢谢

$url = 'http://google.com';
$host = parse_url($url);
$host = strstr($host, '.com', true);

有关详细信息,请参阅 php.net/strstr,当然还有其他更好的方法。

不是特别优雅,但像这样的东西只是域名...

$url = 'http://dev.subdomain.google.com';
$host = parse_url($url,PHP_URL_HOST);
$pieces=explode( '.', $host );
$popped=array_pop( $pieces ); //remove tld extension from stack
if( strlen( $popped ) <= 3 ) array_pop( $pieces ); //tld was likely a multi-part ext like .co.uk so pop next element off stack too!

$domain=array_pop( $pieces );

echo $domain; // returns 'google'

也许你可以用正则表达式修复它

$host = (preg_replace("#(http://)|(https://)|\.(com)|(co\.uk)|(fr)|(de)|(org)|(net)#", "", $host));

preg_replace : preg_replace manual (php.net) 测试你的正则表达式:Debuggex

试试下面的代码

<?php
   $full_url = parse_url('http://facebook.com');
   $url = $full_url['host'];
   $url_array = explode('.',$url);
   echo $url_array[0];
?>