检测显示分辨率

时间:2014-10-01 08:29:37

标签: php mobile device-detection

我需要人们使用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';

请帮我完成此代码。

1 个答案:

答案 0 :(得分:5)

您无法使用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的用户。