V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeshang
V2EX  ›  问与答

php下如何区分移动客户端和PC客户端

  •  
  •   yeshang · 2013-05-06 22:03:31 +08:00 · 3552 次点击
    这是一个创建于 4218 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想做一个网站, 使用php程序, 然后通过什么办法, 让手机移动客户 和桌面电脑客户看到不同的页面

    比如v2ex.com 对于桌面客户就是 双栏 结构的布局.

    而在手机浏览就变成了单栏.
    6 条回复    1970-01-01 08:00:00 +08:00
    mkeith
        1
    mkeith  
       2013-05-06 22:29:35 +08:00   ❤️ 1
    userAgent
    wy315700
        2
    wy315700  
       2013-05-06 22:35:00 +08:00   ❤️ 1
    或者可以用屏幕分辨率来检测
    otakustay
        3
    otakustay  
       2013-05-06 23:35:42 +08:00   ❤️ 1
    一般我们是这么区分移动客户端的(最近正好在研究):

    1. 后端通过UA分析,比如iPad的UA里有iPad字样,有android字样的都是移动客户端之类的(在android电脑出现以前)
    2. 前端js分析,这包括不少策略:
    A. 找screen.orientation,一般有这值的是移动设备
    B. 通过screen.width/height看分辨率,小于1024的基本是移动设备没跑了
    C. 看devicePixelRatio的值,PC上现在为止似乎只有rMBP是超过1的

    另外,仅仅要你说的这种效果的话,建议学习响应式布局,移动设备和PC的分界线正越来越模糊,你说一个可拆键盘带触摸屏的9寸超级本算啥?
    robhsiao
        4
    robhsiao  
       2013-05-07 08:03:22 +08:00 via Android   ❤️ 2
    可以用 Mobile_Detect (https://github.com/serbanghita/Mobile-Detect),原理如楼上的同学们所说是分析User-Agent。

    不过我印象中移动的CMWAP是屏蔽了User-Agent, 如果需要比Mobile_Detect更精准确一些的判断,可能要把IP也作为一个因子来分析 :(
    batfree
        5
    batfree  
       2013-05-07 08:47:55 +08:00   ❤️ 1
    不知道Yahoo是怎么判断的。我用移动的上网卡上mail.yahoo.com,在PC上用的Firefox浏览器,,他每次都给我导向到移动页面。
    yeshang
        6
    yeshang  
    OP
       2013-05-07 09:14:01 +08:00
    @otakustay 看来响应式布局应该是最好也是最容易切入的一个点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2662 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:44 · PVG 19:44 · LAX 03:44 · JFK 06:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.