Beispiel #1
0
Datei: UA.php Projekt: poppen/p2
 /**
  * UAがiPhone, iPod touchならtrueを返す。
  *
  * @static
  * @access  public
  * @param   string   $aua  UAを指定するなら
  * @return  boolean
  */
 function isIPhoneGroup($aua = null)
 {
     static $cache_ = null;
     // 強制指定があればチェック
     if (isset($GLOBALS['_UA_force_mode'])) {
         // 移行の便宜上、効力を弱めている
         // return ($GLOBALS['_UA_force_mode'] == $GLOBALS['_UA_iphonegroup_query']);
         if ($GLOBALS['_UA_force_mode'] == $GLOBALS['_UA_iphonegroup_query']) {
             return true;
         }
     }
     $ua = $aua;
     // UAの引数が無指定なら、
     if (is_null($aua)) {
         // クエリー指定を参照
         if (UA::getQueryValue()) {
             //// 後方互換上、b=kでもiPhoneとみなすことを許す。
             //if (!UA::isMobileByQuery()) {
             return UA::isIPhoneGroupByQuery();
             //}
         }
         // (キャッシュするほどではないかも)
         // 引数のUAが無指定なら、キャッシュ有効
         if (!is_null($cache_)) {
             return $cache_;
         }
         // クライアントのUAで判別
         if (isset($_SERVER['HTTP_USER_AGENT'])) {
             $ua = $_SERVER['HTTP_USER_AGENT'];
         }
     }
     $isiPhoneGroup = false;
     // iPhone
     // Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
     // iPod touch
     // Mozilla/5.0 (iPod; U; CPU like Mac OS X; ja-jp) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A110a Safari/419.3
     if (preg_match('/(iPhone|iPod)/', $ua) || UA::isAndroidWebKit($ua)) {
         $isiPhoneGroup = true;
     }
     // UAの引数が無指定なら、キャッシュ保存
     if (is_null($aua)) {
         $cache_ = $isiPhoneGroup;
     }
     return $isiPhoneGroup;
 }