0

パフォーマンスとスケーラビリティに関する簡単な質問です。ユーザー エージェント文字列から Android フォンの正確なモデルを認識し、モデルが特定のリストにある場合はページを呼び出す必要があります。そこで、「stristr」関数と単純な if 条件を次のように使用します。

$ua = $_SERVER['HTTP_USER_AGENT'];
if ( stristr($ua, "Nexus S") || stristr($ua, "GT-I9003")  || stristr($ua, "GT-I9000") || stristr($ua, "SGH-T959D") || stristr($ua, "SGH-I897") || stristr($ua, "GT-I9088") || stristr($ua, "GT-I9100")  ) {
        $page = "android_specific.html";
        header('Location: ' . $page);
    } 

問題は、この比較を行うためのよりエレガントでおそらくより良い (より高速な) 方法はありますか? 私は配列とforサイクルで推測しますか?

よろしくお願いします。

4

1 に答える 1

1

配列を使用すると、更新が簡単になる場合があります

$ua = "User agent is Nexus S";
$agents = array("Nexus S","GT-I9003");
$page = "default.html";
foreach ($agents as $agent)
{
  if (stripos($ua,$agent)!==FALSE)
  {
    $page = "andriod.html";
    break;
  }
}
echo $page;
于 2012-05-10T10:04:01.243 に答える