ゲット:私が試し*.test.com
と*.test1.com
:あなたはstr_posを使用することができのみ指定されたURL
if((preg_match('.\w+.test.com', $_SERVER['HTTP_ORIGIN'])) or (preg_match('.\w+.test1.com', $_SERVER['HTTP_ORIGIN']))){
}
ゲット:私が試し*.test.com
と*.test1.com
:あなたはstr_posを使用することができのみ指定されたURL
if((preg_match('.\w+.test.com', $_SERVER['HTTP_ORIGIN'])) or (preg_match('.\w+.test1.com', $_SERVER['HTTP_ORIGIN']))){
}
を ドキュメントを検索するには、任意のURLを打破するための最も確実な方法をしたいです。このためには、PHPのbuilt-in parse_url
functionを使用することができます。
$host = parse_url($url, PHP_URL_HOST);
その後、あなたは正規表現を使用して行うことができ、それはtest.com
またはtest1.com
で終わるかどうかを確認したい:
if (preg_match('/test1?\.com$/', $host)) {
//match
}
正規表現作品
test
:1?
:リテラル1
にマッチしますが、それはオプションなのでtest
とtest1
両方が\.
一致します:リテラルのドット一致com
:COM$
のリテラルの一致:文字列の末尾を。この式は、文字列が終了する場合にのみ一致します。test.com
またはtest1.com
です。 単なる警告の言葉:$_SERVER['HTTP_ORIGIN']
、および$_SERVER
値のほぼどれも実際には、信頼されることになります。あなたは
。 Str_posはここlink
...文字列、リンク、URL内手始めにちょっと一例である
if(strpos($_SERVER['HTTP_ORIGIN'], 'test.com') !== false) {
echo "found it";
}
あなたは 'test1.com'をチェックしていません。あなたは私の答えを編集しようとしました:質問をもう一度読んでください:OPは_ "test.com" _ ***と*** _ "test1.com" _をチェックします。チェックされていない 'test1'に加えて。 _ "com.org" _のようなドメインを所有していて、_ "test" _サブドメインを持っていた場合、あなたのチェックはHTTP_ORIGINで 'test.com.org'となっていません –
試してみてください(+リンクされたページを)ここで主題についての詳細を読むことができます$ urlcheck = expload( "test.com"、$ _、SERVER [ 'HTTP_ORIGIN']); if(isset($ urlcheck [1]))//あなたのコードがここに来るようにtest.comを持っていることを意味します。 test.comと* .test1.comの両方で試してください –
PHPは正規表現の区切り文字を必要とします。http://php.net/manual/en/regexp.reference.delimiters.php。これらの正規表現はエラーを投げかけていたはずです。 – chris85