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端数据库的同步。post

 

转发自http://www.cnblogs.com/cyrfr/p/7194152.html

相关文章
相关标签/搜索