检测显示分辨率

问题描述:

我需要人们使用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检测屏幕大小,因为PHP是基于服务器的。 然而,你可以用javascript检测屏幕尺寸并告诉服务器。最简单的方法就是设置一个cookie。

既然你没有说你是想要宽度还是高度,我假设在下面的代码中你只是对那些较大的那个感兴趣。

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

然后用

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

用这种方法唯一的问题是,如果用户连接的第一次,他没有cookie的尚未签入你的PHP脚本,所以服务器将不知道分辨率。同样适用于不接受cookie的用户。

+0

谢谢 但我想改善cookie在被移动设备访问时如何显示移动设备的界面以及访问计算机以更严格的方式显示计算机界面的方式。 – user3463111 2014-10-01 09:08:23

+1

那么服务器将无法知道分辨率,除非客户说出来。所以最好的做法是在客户端而不是服务器端进行分辨率相关的差异。我不知道你的手机和桌面版本之间有什么区别,但是如果只是样式,你可以向客户端提供一个通用版本,并使用CSS Media查询根据分辨率http:// css更改设计-tricks.com/css-media-queries/ – dingensundso 2014-10-01 09:21:35

+0

您好,
移动设备上显示的分辨率我希望尺寸小于800像素。它将显示UI目录:包括/移动
而我想在801px大小的计算机上的分辨率。它将显示UI目录:包含/桌面

谢谢。 – user3463111 2014-10-01 09:44:13