3

我有成千上万个网址,例如我只想从中获取域名

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.com获取google

请帮忙谢谢

4

4 回答 4

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'
于 2015-07-15T08:11:51.960 回答
0
$url = 'http://google.com';
$host = parse_url($url);
$host = strstr($host, '.com', true);

有关更多详细信息,请参阅php.net/strstr,当然还有其他更好的方法可以做到这一点。

于 2015-07-15T08:10:14.930 回答
0

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

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

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

于 2015-07-15T08:14:13.963 回答
0

试试下面的代码

<?php
   $full_url = parse_url('http://facebook.com');
   $url = $full_url['host'];
   $url_array = explode('.',$url);
   echo $url_array[0];
?>
于 2015-07-15T08:17:54.437 回答