如何从网址获取中心域名

时间:2015-07-15 08:03:30

标签: php url parse-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

请帮助谢谢

4 个答案:

答案 0 :(得分:2)

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

$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'

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

尝试以下代码

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