php判斷手機段登陸,以及phpcms手機PC雙模板調用

首先一段php代碼判斷是否爲手機瀏覽:php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
function  isMobile()
{
     // 若是有HTTP_X_WAP_PROFILE則必定是移動設備
     if  (isset ( $_SERVER [ 'HTTP_X_WAP_PROFILE' ]))
     {
         return  true;
     }
     // 若是via信息含有wap則必定是移動設備,部分服務商會屏蔽該信息
     if  (isset ( $_SERVER [ 'HTTP_VIA' ]))
     {
         // 找不到爲flase,不然爲true
         return  stristr ( $_SERVER [ 'HTTP_VIA' ],  "wap" ) ? true : false;
     }
     // 腦殘法,判斷手機發送的客戶端標誌,兼容性有待提升
     if  (isset ( $_SERVER [ 'HTTP_USER_AGENT' ]))
     {
         $clientkeywords  array  ( 'nokia' ,
             'sony' ,
             'ericsson' ,
             'mot' ,
             'samsung' ,
             'htc' ,
             'sgh' ,
             'lg' ,
             'sharp' ,
             'sie-' ,
             'philips' ,
             'panasonic' ,
             'alcatel' ,
             'lenovo' ,
             'iphone' ,
             'ipod' ,
             'blackberry' ,
             'meizu' ,
             'android' ,
             'netfront' ,
             'symbian' ,
             'ucweb' ,
             'windowsce' ,
             'palm' ,
             'operamini' ,
             'operamobi' ,
             'openwave' ,
             'nexusone' ,
             'cldc' ,
             'midp' ,
             'wap' ,
             'mobile'
             );
         // 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字
         if  (preg_match( "/("  . implode( '|' $clientkeywords ) .  ")/i" strtolower ( $_SERVER [ 'HTTP_USER_AGENT' ])))
         {
             return  true;
         }
     }
     // 協議法,由於有可能不許確,放到最後判斷
     if  (isset ( $_SERVER [ 'HTTP_ACCEPT' ]))
     {
         // 若是隻支持wml而且不支持html那必定是移動設備
         // 若是支持wml和html可是wml在html以前則是移動設備
         if  (( strpos ( $_SERVER [ 'HTTP_ACCEPT' ],  'vnd.wap.wml' ) !== false) && ( strpos ( $_SERVER [ 'HTTP_ACCEPT' ],  'text/html' ) === false || ( strpos ( $_SERVER [ 'HTTP_ACCEPT' ],  'vnd.wap.wml' ) <  strpos ( $_SERVER [ 'HTTP_ACCEPT' ],  'text/html' ))))
         {
             return  true;
         }
     }
     return  false;
}

phpcms 模板文件中建立兩個模板:css

其中 content中的文件是PC端模板,content_m中的文件是手機端模板。html

其次在pgpcms中 編輯 phpcms/modules/content/index.phpandroid

講以上php代碼 放到index的class類中。web

找到全部的:數據庫

1
include  template( 'content' , $template );

替換爲:windows

1
2
3
4
if ( $this ->isMobile()){
     include  template( 'content_m' , $template );
} else {
     include  template( 'content' , $template );

 最後將:瀏覽器

1
include  template( 'content' , 'index' , $default_style );

 替換爲:iphone

1
2
3
4
5
if ( $this ->isMobile()){
     include  template( 'content_m' , 'index' , $default_style );
} else {
     include  template( 'content' , 'index' , $default_style );
}

  

到如今爲止基本上就設置好了當運行phpcms中的index.php文件是,會根據是否爲手機端調用不一樣的模板,實現了手機端和PC端數據庫的同步。this

相關文章
相關標籤/搜索