【发布时间】:2012-12-08 06:52:46
【问题描述】:
我正在解析域并遇到处理子域的问题。如果域是http://www.google.co.uk,我想得到google的长度是6。
在这种情况下,我使用parse_url() 来返回主机 www.google.co.uk,就像这样。
$url = 'http://www.google.co.uk';
$info = parse_url($url);
// remove www. and return google.co.uk
$new = str_replace('www.','',$info['host']);
$pieces = explode(".", $new);
$len = strlen($pieces[0]); // returns character length of google = 6
echo $len;
如果域包含像http://test.google.co.uk 这样的子域,我的代码将不起作用:它返回长度为 4;我希望它返回 6 的长度。
有什么想法吗?
【问题讨论】:
-
那么,对于test.google.co.uk,您希望长度是多少?
-
我只想返回域的长度而不是任何子域。如果有像 test.google.co.uk 这样的子域,那么长度将等于 4,因为 $pieces[0] 会将第一部分设为“test”而不是 google。
-
您是说在test.google.co.uk 的情况下,您希望长度为6?
-
如果没有包含所有 TLD 的列表,您将无法执行此操作。无法确定
x.y.zx 或 y 是否是域。想象一下google.co.uk与google.com。 -
可能是重新考虑策略的时候了——导致这条实施路线的总体目标/目的是什么?