ブラウザがAndroid(1からバージョン2.3のみ)であるかどうかを検出する必要がありますが、これは機能しますか?
if(preg_match('/Android [1-2.3]/', $_SERVER['HTTP_USER_AGENT'])) {
echo 'something';
}
ブラウザがAndroid(1からバージョン2.3のみ)であるかどうかを検出する必要がありますが、これは機能しますか?
if(preg_match('/Android [1-2.3]/', $_SERVER['HTTP_USER_AGENT'])) {
echo 'something';
}
次の正規表現は正確に一致しますAndroid [1-2.3]
。
Android ([1](?:\.[0-9])?|[2](?:\.[0-3])?$)
為にMSIE [6-8] Android [1-2.3]
MSIE [6-8] Android ([1](?:\.[0-9])?|[2](?:\.[0-3])?)$
それらのデバイスのUserAgentがどのように見えるかは本当にわかりませんが、あなたが持っているパターンはあなたが望むものではない可能性があります。私はあなたが次の線に沿ってもっと何かを望んでいると思います:
'/Android (1\.\d|2\.[012])/'
パターンを書く方法はたくさんありますが、基本的にこれは、次のいずれかを続ける必要があると言っていますAndroid
。1.{any number}
2.0, 2.1 or 2.2
ブラウザの検出に Browscap を使用することをお勧めします。
get_browser
関数ドキュメントhttp://php.net/manual/en/function.get-browser.php
「実際の」browscap .ini ファイルのダウンロードhttp://tempdownloads.browserscap.com
プロジェクトは現時点で閉鎖されており、問題のブラウザデータベースのさらなる更新に注意する必要があります。
あなたの場合の使用例:
$browser = get_browser(null, true);
if (array_key_exists('Platform', $browser) && array_key_exists('Platform_Version', $browser) && $browser['Platform'] == 'Android' && $browser['Platform_Version'] <= 2.3) {
echo 'Android <2.3 version';
}