PHPでは、現在のページのURLにwwwが含まれているかどうかを確認するにはどうすればよいですか?
たとえば、ユーザーがhttp://www.example.com/somethingにいる場合、URLにwwwが含まれていて、 http://example.com/somethingにwwwがURLに含まれていないことを確認するにはどうすればよいですか?
PHPでは、現在のページのURLにwwwが含まれているかどうかを確認するにはどうすればよいですか?
たとえば、ユーザーがhttp://www.example.com/somethingにいる場合、URLにwwwが含まれていて、 http://example.com/somethingにwwwがURLに含まれていないことを確認するにはどうすればよいですか?
を使用$_SERVER['HTTP_HOST']
してドメインを取得できます。あなたのサイトがサブドメインを使用していない場合、それは簡単です。次のようなものを使用してください:
$url1 = "www.domain.com";
$params = explode('.', $url1);
if(sizeof($params === 3) AND $params[0] == 'www') {
// www exists
}
params 配列に 2 つのアイテムがある場合、ドメインは次のようになり、明確にdomain.com
存在しないことに注意してください。配列www
のサイズを確認して、そのサイズに基づいて存在するかどうかを判断することもできます。$params
www
サイトがサブドメインを使用している場合は、さらに複雑になります。考えられるシナリオは次のとおりです。
$url1 = "www.domain.com";
$url2 = "www.sub.domain.com";
$url3 = "domain.com";
$url4 = "sub.domain.com";
次に、すべての URL を再度展開し、サイズを比較して、最初の項目が「www」であるかどうかを確認します。www
しかし、あなたのサブドメインはサブドメインになる場所に名前を付けることができることに注意してくださいwww
:D そして、それは次のようになります: www.domain.com
、そして再び、www
サブドメインです:)
とにかく、www
サイトがサブドメインを使用していないかどうかを確認するのは簡単です. しかし、URL にサブドメインがwww
あり、サイトがサブドメインを使用しているかどうかを確認するのは難しい場合があります。この問題に対処する最も簡単な解決策はwww
、可能であればサブドメインを無効にすることです。
さらにヘルプが必要で、これで質問の答えが得られない場合は、お気軽にお問い合わせください。のようなサブドメインとなる独自のアカウントをユーザーが作成できる同様の状況がwww.user.domain.com
あり、同じことをしなければなりませんでした。
お役に立てれば!
あなたはpreg_match
これを行うことができます:
if(preg_match('/www/', $_SERVER['HTTP_HOST']))
{
echo 'you got www in your adress';
}
else
{
echo 'you don not have www';
}
上記のオプションを構築しているものに応じて、.htaccessを使用してそれを行うこともできますが、単純な検出には問題ありません。
フェルディアが与えたオプションを選択した場合は、次のようにチェックします。
$domain = array_shift(explode(".",$_SERVER['HTTP_HOST']));
if(in_array('www', $domain))
{
echo 'JUP!';
}
URLはもうわかりますか?次に、これを取ります:
<?php
$parsed = parse_url("http://www.example.com/something");
$hasWww = strpos($parsed['host'], "www.") === 0;
var_dump($hasWww);
そうでなければ、取る
strpos($_SERVER['HTTP_HOST'], "www.") === 0
www が含まれているかどうかを確認する方法はたくさんあります。
方法の1つは次のとおりです。
if(strpos($_SERVER['HTTP_HOST'], `www`) !== false) {
echo "WWW found";
} else {
echo "WWW not found";
}
array_shift(explode(".",$_SERVER['HTTP_HOST']));
動作するはずです。次に、wwwの存在についてアレイを調べます。wwwを削除または強制しようとしているだけの場合、そのジョブでは.htaccessルールがPHPよりもはるかに優れています。
$_SERVER['HTTP_HOST']
現在のリクエストの Host: ヘッダーの内容 (存在する場合)。
$_SERVER['SERVER_NAME']
現在のスクリプトが実行されているサーバー ホストの名前。スクリプトが仮想ホストで実行されている場合、これはその仮想ホストに対して定義された値になります。