0

ドメインを解析していて、サブドメインの処理で問題が発生しています。ドメインが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 が返されることを期待しています。

何か案は?

4

2 に答える 2

0

出力は正しいです。入力時http://test.google.co.ukの値はparse_url('http://test.google.co.uk')['host']ですhttp://test.google.co.uk。この文字列をドットで展開すると、配列の最初の要素は になりtest、その長さは 4 になります。

google代わりに取得するにtestは、最初の例で行ったようにサブドメインを何も置き換えないか、展開された文字列の 2 番目の要素を取得する必要があります。例えば:

$url    = 'http://test.google.co.uk';    
$info   = parse_url($url);    
$pieces = explode(".", $info['host']); 
$len    = strlen($pieces[1]); // returns character length of google = 6
echo $len;
于 2012-12-20T17:55:45.847 に答える