【问题标题】:Detect the display resolution检测显示分辨率
【发布时间】:2014-10-01 08:29:37
【问题描述】:

我需要使用 PHP 检测设备显示分辨率的人的帮助。

切换界面时我的代码有问题我有以下代码:

 $_page="home";
 if(get('page'))
    $_page=strtolower(get('page'));
 // Check if larger than 800px screen will show this code.
 $_pagePath='Includes/desktop/'.$_page.'_left.php';
 // Check if the screen is smaller than 800px will display this code.
 $_pagePath='Includes/mobile/'.$_page.'_left.php';  
 if(file_exists($_pagePath))
            include $_pagePath;
 else
    echo 'File '.$_pagePath.' not found';

请帮我完成这段代码。

【问题讨论】:

    标签: php mobile device-detection


    【解决方案1】:

    您将无法使用 PHP 检测屏幕大小,因为 PHP 是基于服务器的。 但是,您可以使用 javascript 检测屏幕大小并告诉服务器。最简单的方法是设置一个 cookie。

    由于您没有说是想要宽度还是高度,我在下面的代码中假设您只对其中较大的一个感兴趣。

    <script type="text/javascript">
      var c=document.cookie;
      document.cookie='size='+Math.max(screen.width,screen.height)+';';
    </script>
    

    然后在你的 PHP 脚本中检查它

    if($_COOKIE["size"]>800)
      $_pagePath='Includes/mobile/'.$_page.'_left.php'; 
    else
      $_pagePath='Includes/desktop/'.$_page.'_left.php'; 
    

    这种方法的唯一问题是,如果用户第一次连接,他还没有 cookie,所以服务器不会知道分辨率。同样适用于不接受 cookie 的用户。

    【讨论】:

    • 谢谢,但是我想改进cookie在被移动设备访问时显示移动设备界面和访问计算机显示计算机界面的更严格的方式。
    • 好吧,除非客户端说,否则服务器将无法知道分辨率。所以最好的做法是在客户端而不是服务器端做依赖于分辨率的差异。我不知道您的移动版和桌面版之间有什么区别,但如果只是样式,您可以向客户端提供通用版本并使用 CSS 媒体查询根据分辨率更改设计css-tricks.com/css-media-queries跨度>
    • 您好,
      移动设备上显示的分辨率我希望尺寸在800px以下。它将显示 UI 目录:Incluce/Mobile
      以及我想要在 801px 大小的计算机上的分辨率。它将显示 UI 目录:Incluce/Desktop

      谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    相关资源
    最近更新 更多