V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mikemikemike
V2EX  ›  程序员

php 怎么将已有的 web,先判断设备是否是手机,是则将 web 转成 wap 呢

  •  
  •   mikemikemike · 2014-03-31 16:11:37 +08:00 · 4190 次点击
    这是一个创建于 3894 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,各位GGMM求帮助,头痛,,,,偏头痛。
    17 条回复    1970-01-01 08:00:00 +08:00
    yakczh
        1
    yakczh  
       2014-03-31 16:20:05 +08:00   ❤️ 2
    检测ua,如果是手机,换个模板不就完了吗,这有什么头疼的?
    SLG
        2
    SLG  
       2014-03-31 16:26:37 +08:00   ❤️ 1
    css做好responsive就好了, 实在不做也没关系, 拿baidu w调用.

    其实做单纯wap页面这需求纯粹白瞎, 这年头哪有人会用只支持wap的手机上网的, 10年前还差不多.
    010blue
        3
    010blue  
       2014-03-31 16:30:03 +08:00   ❤️ 1
    css做responsive或根据UserAgent进行判断是否为手机,可以参考下wordpress的做法:
    function wp_is_mobile() {
    static $is_mobile;

    if ( isset($is_mobile) )
    return $is_mobile;

    if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
    $is_mobile = false;
    } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
    || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
    $is_mobile = true;
    } else {
    $is_mobile = false;
    }

    return $is_mobile;
    }
    vibbow
        4
    vibbow  
       2014-03-31 16:50:25 +08:00   ❤️ 1
    数据库最全,检测最完美的方法:
    https://github.com/garetjax/phpbrowscap
    lijinma
        5
    lijinma  
       2014-03-31 17:14:28 +08:00   ❤️ 1
    建议你使用responsive的方式,不要单做wap
    mikemikemike
        6
    mikemikemike  
    OP
       2014-03-31 17:35:55 +08:00
    @010blue 使用的是一个老的框架站点,symfony 1.4,需要维护使用,这个怎么办。查了一下这相关的资料很少。重新开发成本又高。
    iamjs
        7
    iamjs  
       2014-03-31 17:36:28 +08:00   ❤️ 1
    11
        8
    11  
       2014-03-31 17:37:41 +08:00
    mikemikemike
        9
    mikemikemike  
    OP
       2014-03-31 17:45:34 +08:00
    @iamjs 嗯,检测到之后怎么转wap呢?
    mikemikemike
        10
    mikemikemike  
    OP
       2014-03-31 17:53:00 +08:00
    @SLG @yakczh @lijinma 求助,看是否有相关建议:
    使用的是一个老的框架站点,symfony 1.4,需要维护使用,这个怎么办。查了一下这相关的资料很少。重新开发成本又高。
    lincanbin
        11
    lincanbin  
       2014-03-31 17:56:06 +08:00
    @mikemikemike 如果是MVC,那么只要根据UA修改View的路径即可。
    mikemikemike
        12
    mikemikemike  
    OP
       2014-03-31 18:41:10 +08:00
    @lincanbin 有没有联系方式呢?加一下Q29590764
    huangzxx
        13
    huangzxx  
       2014-04-01 17:18:04 +08:00
    oott123
        14
    oott123  
       2014-04-02 08:40:30 +08:00 via Android
    我估计楼主是想要一个 php 智能将 web 页面转换为 wap 输出的玩意。
    目前来说可能性不大,或者说效果不好。
    你得重新开发一套 wap 的模板。
    dong3580
        15
    dong3580  
       2014-04-02 09:35:01 +08:00 via iPhone
    @mikemikemike
    例如自己的地址: localhost:80/test/www/index.html
    检测到就跳到:localhost:80/test/wap/index.html
    不就OK了.
    iamjs
        16
    iamjs  
       2014-04-02 10:03:32 +08:00
    @mikemikemike 最好的方式是载入不同模版
    也可以跳转到不同网址。
    更可以使用响应式布局做网站。。比如我的 http://www.benhouzi.com 用bootstrap做前端。基本再用 css3区别屏幕宽度,来做一些 display:none 在小屏幕上隐藏掉一些内容。来保证内容完整
    MaiCong
        17
    MaiCong  
       2014-04-02 10:19:24 +08:00
    可以用css做响应式布局(@media screen),或者用php判断UA,套用另一个模版
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5381 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:55 · PVG 13:55 · LAX 21:55 · JFK 00:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.