2014-10-01 2 views
2

Мне нужна помощь от людей, определяющих разрешение экрана устройства с использованием 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'; 

Пожалуйста, помогите мне закончить этот код.

ответ

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.

+0

Спасибо, Но я хочу улучшить то, как cookie при доступе к мобильному устройству будет отображать интерфейс мобильных устройств и доступ к компьютерному интерфейсу компьютера для более строгой манеры. – user3463111

+1

Ну, сервер не сможет узнать разрешение, если клиент не говорит об этом. Поэтому наилучшей практикой было бы делать различия, зависящие от разрешения, на стороне клиента, а не на стороне сервера. Я не знаю, каковы различия между вашей мобильной и настольной версиями, но если это просто стили, вы можете просто доставить общую версию клиенту и использовать запросы CSS Media для изменения дизайна на основе разрешения http: // css -tricks.com/css-media-queries/ – dingensundso

+0

Здравствуйте,
Разрешение, отображаемое на мобильном устройстве, я хочу иметь размер ниже 800 пикселей. Он отобразит каталог пользовательского интерфейса: Incluce/Mobile
И разрешение на компьютере, которое я хочу иметь на размер 801px. Он отобразит каталог пользовательского интерфейса: Incluce/Desktop

Thank. – user3463111

Смежные вопросы