TP3.2.xは、モバイル端末のアクセスを決定する(サイトセミデタッチ)ドメイン名でPCと携帯電話の端に異なるテンプレートを表示します

まずAPP_STATUSは組み込み定数導入、TPは、自動的に別のモジュールを指していることにより、異なるプロジェクトプロファイル、設定ファイルをロードし、APP_STATUSエントリファイルのパラメータを増加しました

WAP電話モジュールにアクセスする際にエンド電話は、ドメイン名をジャンプすることなく、携帯電話の最後にモバイルWebアクセスを発揮
config.phpのとMobie:まず、我々は./Application/Common/Conf/カタログ内の2つのパブリックプロファイルを作成します。 PHP

config.phpファイル 

<?PHPの
戻り
配列 'DEFAULT_MODULE' => 'インデックス'、 'DEFAULT_CONTROLLER' => 'インデックス'、 'のdefault_action' => 'インデックス' )。

Mobie.phpファイル:

<?PHPの
戻り
配列 'DEFAULT_MODULE' => 'Mobie'、 'DEFAULT_CONTROLLER' => 'インデックス'、 'のdefault_action' => 'インデックス' )。

  モバイル端末を追加し、タグ付け、ファイル内のバックライン21は、「カスタムアプリケーションディレクトリ」終了で、インデックスファイルに単一のエントリに(方法は、下部に推奨)キーを決定します。

 

もし(is_mobile_request()){
     定義( 'APP_STATUS'、 'config_wapを' )。
} {
     定義( 'APP_STATUS'、 'インデックス' ); 
}

  このように、異なるモジュールを呼び出すためのキーAPP_STATUSと、is_mobile_request()書き込み:

関数is_mobile_request(){ 
    $ _SERVER [ 'ALL_HTTPが'] ISSET($ _ SERVER [ 'ALL_HTTPを'])= $ _SERVER [ 'ALL_HTTP']: ''; 
    $ mobile_browser = '0'; 
    (するpreg_match(場合'/(up.browser | up.link | MMP |シンビアン|スマートフォン| MIDP | WAP |電話| iphone | ipadの|のipod |アンドロイド| Xoomの)/ i'は、strtolower($ _、SERVER [ 'HTTP_USER_AGENT'] )))
        $のmobile_browser ++; 
    もし((ISSET($ _、SERVER [ 'HTTP_ACCEPT']))及び(strpos(strtolower($ _、SERVER [ 'HTTP_ACCEPT'])、 'アプリケーション/ vnd.wap.xhtml + XML')== false)を!)
        $のmobile_browser ++; 
    (ISSET($ _、SERVER [ 'HTTP_X_WAP_PROFILE']))の場合
        の$ mobile_browser ++; 
    (ISSET($ _、SERVER [ 'HTTP_PROFILE']))の場合
        の$ mobile_browser ++;
        $ mobile_agents =配列(
            'W3C'、 'ACS - '、 'alav'、 'ALCA'、 'AMOI'、 'アウディ'、 'アバン'、 'BENQ'、 '鳥'、 'BLAC'、
            'blaz'、 '醸造'、 'セル'、 'CLDC'、 'CMD - '、 '一顧'、 'DOCO'、 'エリック'、 'hipt'、 'INNO'、
            'IPAQ'、 'ジャワ'、 'ジグ'、」 KDDI」、 'keji'、 'レノ'、 'LG-C'、 'LG-D'、 'LG-G'、 'lge-'、
            'マウイ'、 'MAXO'、 'MIDP'、 'MITS'、 'mmef'、 'mobiは'、 'MOT - '、 'モト'、 'mwbp'、 'nec-'、
            'イモリ'、 'noki'、 'OPER'、 '手のひら'、 'PANA'、 'パンツ'、 "フィル' '遊び'、 'ポート'、 'PROX'、 
            'qwap'、 'セージ'、 'のSAM'、 '三易'、 'SCH - '、 '秒- '、 ''、 'セリを送ります'、' SGH - ' 'のshar'、
            'SIE - '、 'シェムリ'、 'をSmaI'、 'SMAR'、 'ソニー'、 'SPH - '、 'SYMB'、 'T-MO'、 'テリー'、'ティム- 」、
            'トッシュ'、 'TSM - '、 'upg1'、 'UPSI'、 'VK-V'、 'ヴォーダ'、 'WAP - '、 'wapa'、 'WAPI'、 'wapp'、'SmaIで'、 'SMAR'、 'ソニー'、 'SPH - '、 'SYMB'、 'T-MO'、 'テリー'、 'tim-'、 'トッシュ'、 'TSM - '、 'upg1'、」 UPSI」、 'VK-V'、 'ヴォーダ'、 'WAP - '、 'wapa'、 'WAPI'、 'wapp'、'SmaIで'、 'SMAR'、 'ソニー'、 'SPH - '、 'SYMB'、 'T-MO'、 'テリー'、 'tim-'、 'トッシュ'、 'TSM - '、 'upg1'、」 UPSI」、 'VK-V'、 'ヴォーダ'、 'WAP - '、 'wapa'、 'WAPI'、 'wapp'、 
            'wapr'、 'WEBC'、」ウェハ内」、 'ウェハ内'、 'XDA'、 'xda-' 
        ); 
     もし(in_array($ mobile_ua、$ mobile_agents))SYMB」、 'T-MO'、 'テリー'、 'tim-'、 'wapr'、 'WEBC'、 'ウェハ内'、 'ウェハ内'、 'XDA'、 'xda-' )。もし(in_array($ mobile_ua、$ mobile_agents))SYMB」、 'T-MO'、 'テリー'、 'tim-'、 'wapr'、 'WEBC'、 'ウェハ内'、 'ウェハ内'、 'XDA'、 'xda-' )。もし(in_array($ mobile_ua、$ mobile_agents))
          $ mobile_browser ++; 
     もし(strpos(strtolower($ _、SERVER [ 'ALL_HTTP'])、 'operamini')== falseを!)
          $のmobile_browser ++; 
     ユーザーがWindows上にある場合、すべてをリセットする//前の最終チェック   
     (!strpos(strtolower($ _、SERVER [ 'HTTP_USER_AGENT'])、 '窓')== false)の場合は
          $ mobile_browser = 0; 
     //しかし、WP7はわずかに異なる特性を、また、Windowsで   
     あれば(strpos(strtolower($ _、SERVER [ 'HTTP_USER_AGENT'])、 'ウィンドウズフォン')== falseを!)
          $のmobile_browser ++; 
     ($ mobile_browser> 0)であれば   
          trueを返します。
     それ以外
          はfalseを返します。
}

  参考TPドキュメントします。http://document.thinkphp.cn/manual_3_2.html#load_config

 

  また、私は個人的に以下のコードを検証するのではなく、判断する使用JSが見つかりました:

  


関数(){ VAR RES = のGetRequest(); VARパー=のRES [ 'インデックス' ]; もし!(PAR = 'gfan' ){ VAR UA = navigator.userAgent.toLowerCase(); varが含ま= 関数(、 B){ 場合(a.indexOf(B)= - 1){!戻り ;} }; VAR toMobileVertion = 関数(){ window.location.href = '手机站地址' } もし((UA、 "アプリ"という)||((UAが含まれ、 "RV:1.2.3.4"が含まれている)))||()(UA、 "0.0.0.0"が含ま||(「、(UAが含ま8.0.552.237 "))){ 戻り } もし、(((UA、含む"アンドロイド")は&&含有(UA、"モバイル"||))((UA、含む"アンドロイド")は&&含有(UA、"モジラ」)) ||((UA、 "アンドロイド")&&(UAが含まれ、 "オペラ"が含ま)) ||含有(UAを、 "ucweb7を")||(UA、 "iPhone"が含ま)){toMobileVertion();} } } ())。 関数のGetRequest(){ VARの URL = location.search。// 获取URLの中符后的字串"?" VAR theRequest = 新しいオブジェクト(); STR = url.substr(1 )。 STRS = str.split( "&" )。 VAR ; iはstrs.lengthを<I ++は、I = 0 ){ theRequest [STRS [I] .split( "=")[0] =アンエスケープ(STRS [I] .split( "=")[ 1 ])。 } } 戻りtheRequest。 }

 

おすすめ

転載: www.cnblogs.com/easyTrue/p/11116714.html