个人感觉还是单独作一个手机站好,在入口文件中作好判断,是移动端的跳转到手机站,是PC端的跳转到PC站例一个判断移动端代码:<?php
02 function isMobile()
03 {
04     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
05     if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
06     {
07         return true;
08     }
09     // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
10     if (isset ($_SERVER['HTTP_VIA']))
11     {
12         // 找不到为flase,否则为true
13         return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
14     }
15     // 脑残法,判断手机发送的客户端标志,兼容性有待提高
16     if (isset ($_SERVER['HTTP_USER_AGENT']))
17     {
18         $clientkeywords = array ('nokia',
19             'sony',
20             'ericsson',
21             'mot',
22             'samsung',
23             'htc',
24             'sgh',
25             'lg',
26             'sharp',
27             'sie-',
28             'philips',
29             'panasonic',
30             'alcatel',
31             'lenovo',
32             'iphone',
33             'ipod',
34             'blackberry',
35             'meizu',
36             'android',
37             'netfront',
38             'symbian',
39             'ucweb',
40             'windowsce',
41             'palm',
42             'operamini',
43             'operamobi',
44             'openwave',
45             'nexusone',
46             'cldc',
47             'midp',
48             'wap',
49             'mobile'
50             );
51         // 从HTTP_USER_AGENT中查找手机浏览器的关键字
52         if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
53         {
54             return true;
55         }
56     }
57     // 协议法,因为有可能不准确,放到最后判断
58     if (isset ($_SERVER['HTTP_ACCEPT']))
59     {
60         // 如果只支持wml并且不支持html那一定是移动设备
61         // 如果支持wml和html但是wml在html之前则是移动设备
62         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'))))
63         {
64             return true;
65         }
66     }
67     return false;
68 }
69 ?>

解决方案 »

  1.   

    你用TP的话你就在模板输出的时候做判断就好了就是$this->display('模板文件');根据不同的设备类型变换不同的模板进行渲染就可以了可以在公用一个MC的模式下指示更改V,更有点类似于theme主题切换了。LZ想的太复杂了。
      

  2.   

    你不写就默认当前方法啊public function index(){$this->display()},就相当于index.html,如果你想跳转到哪个模板,你就相应的写成该模板
      

  3.   

    事实上你只需要在TP入口处判断设备来源;
    然后定义一个view的路径常量;
    在config文件中的模版路径使用这个常量;
    手机版跟电脑版的区别无非就是视图上的区别