我有成千上万的网址,我只想获得域名,例如
<?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
请帮助谢谢
答案 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];
?>