2016-09-07 1 views
-1

私のコードには助けが必要です: 私はthee wwwを置き換える関数しか持っていません。空白のスペースで。私は、URLを追加する場合 :getdomain関数を変更するには、PHPでサブドメインなしで必要になります

例えば

s.dada.testek.com ユーザー:www.testek.com ユーザーがtestek.com

しかし、私は、URLを追加した場合に表示されます私たちは、ドメインs.dada.testek.comを使用するのであれば、私は、エンドユーザーのみがtestek.comを見ていることを希望s.dada.testek.com

が表示されます。

しかし、サブドメインのないメインドメインのみを取得したいと考えています。

コード:

function getdomain($url){ 
    $parsed = parse_url($url); 
    return str_replace('www.','', strtolower($parsed['host'])); 
} 

私はポストを見ましたが、それは私のために動作しません。

ありがとうございました!

は今、私は、コードを変更しました:

function getdomain($url){ 
    $parsed = parse_url($url); 
    $bits = explode(".",$parsed["host"]); 
    $mainDomain = array_filter($bits, function ($i) use ($bits) { 
     return $i >= count($bits)-2; 
    }, array(
    'www.rover.ebay.com' => 'ebay.com', 
    's.click.aliexpress.com' => 'aliexpress.com',); 

    return implode(".", $mainDomain); 
} 

私は正しい道を考えていますか?

今、エンドユーザーは次のように見ているので:

function getdomain($url){ 
    $parsed = parse_url($url); 
    $bits = explode(".",$parsed["host"]); 
    $mainDomain = array_filter($bits, function ($i) use ($bits) { 
     return $i >= count($bits)-2; 
    }, ARRAY_FILTER_USE_KEY); 

    return implode(".", $mainDomain); 
} 

を参照してください:あなたは、単にURLのメインドメイン名の最後の2つのセグメントを取得したい場合は http://i.stack.imgur.com/JddKB.jpg

+1

メインドメインとしてはどのような資格がありますか?例えば'www.google.com'では答えは明らかに' google.com'ですが、仮説的な 'www.beta.google.com'ではまだ' google.com'か 'beta.google.com'です? – apokryfos

+0

どのような資格がありますか。あなたが尋ねたように、それはいつもgoogle.com – Daichisan

+0

だから 'www.google.co.uk'は' co.uk'でしょうか?より良い問題文が必要です。 – symcbean

答えて

0

は、次の操作を行うことができますどのように働くのですかhttps://eval.in/636860

残念ながらほとんどの場合、「すべてをキャッチ」というソリューションはなく、ハードコードされたものをたくさん作成する必要があります。例えば英国は.co.ukですが、フランスはちょうど.frなので、最後の3つまたは4つのセグメントが必要な場合があります。

+0

これは私がそれを使いたい方法です。 – Daichisan

+0

URLが有効であること、つまり開始時にスキーマ(「http://」など)があることを確認してください。 – apokryfos

+0

アレイのフィルターキーにはどうすればいいですか?ドメイン名? – Daichisan

0

私はこのようにそれを修正した:私は私が示されたくない「サブドメイン」を持つ配列を作成しました

function getdomain($url){ 
    $parsed = parse_url($url); 
    $replace = array ("rover.", "www.", "s.click."); 
    return str_replace($replace,'', strtolower($parsed['host'])); 
} 

。 これでOKです。

あなたのサポートと私の心を開いてくれてありがとう:

関連する問題