0

次のようなphp関数を使用して、サイトのユーザーがモバイルデバイスを使用しているかどうかを確認しています:

function isMobileCheckByAgent()
{
return !!preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Googlebot-Mobile)/',$_SERVER['HTTP_USER_AGENT']);
}

現在、Asus Nexus 7 と Galaxy Tab (タブレット) の 2 つのデバイスがあり、モバイルではなくデスクトップ サイトを提供したいと考えています。

これらのデバイスが HTTP_USER_AGENT から返すものを見て、文字列を探すことにしました。

Nexus 7 および Windows NT 6.1

だから私は書いた:

function isMobileCheckByAgent()
{
 if(!!preg_match('/(Nexus 7|Windows NT 6.1)/',$_SERVER['HTTP_USER_AGENT']) == true)
 {
 return (false);
 }
 elseif(!!preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Googlebot-Mobile)/',$_SERVER['HTTP_USER_AGENT']) == true)
 {
 return (true);
 }
 else
 {
 return(false);
 }
}

しかし、確かに私のPHPスキルは不足しており、ここで失敗しています。デスクトップ サイトに切り替えたいデバイスは、まだモバイル サイトに配信されています。どこが間違っていたのか、またはこの関数を改善して必要なものを返す方法を誰かが見ていますか? "preg_match('/(Nexus 7|Windows NT 6.1)/'" でスペースを使用できますか? 二重否定 "!!" とは何ですか? この関数を最初に書いた人がやっているので、私は自分でやっているだけです。

4

1 に答える 1