Получение разрешения экрана с помощью PHP - PullRequest
42 голосов
/ 01 октября 2009

Мне нужно найти разрешение экрана пользователя, который посещает мой сайт?

Ответы [ 19 ]

0 голосов
/ 31 августа 2018

Вы можете установить ширину окна в куки, используя JS во внешнем интерфейсе, и вы можете получить его в PHP:

<script type="text/javascript">
   document.cookie = 'window_width='+window.innerWidth+'; expires=Fri, 3 Aug 2901 20:47:11 UTC; path=/';
</script>

<?PHP
    $_COOKIE['window_width'];
?>
0 голосов
/ 24 сентября 2016

решение: сделать масштабируемый веб-дизайн ... (наше, я должен сказать, правильный веб-дизайн) форматирование должно быть сделано на стороне клиента, и я хотел бы, чтобы информация передавалась на сервер, но информация все еще полезна (сколько объектов в что-то вроде строк), но веб-дизайн все еще должен быть плавным, поэтому каждый элемент строки не следует помещать в таблицы, если только он не является фактической таблицей (и данные будут масштабироваться до отдельных ячеек), если вы используете div, вы можете сложить каждый элемент рядом с друг с другом, и ваше окно должно «разбить» строку в нужном месте. (просто нужно правильно CSS)

0 голосов
/ 06 августа 2016
<script type="text/javascript">

if(screen.width <= 699){
    <?php $screen = 'mobile';?>
}else{
    <?php $screen = 'default';?>
}

</script>

<?php echo $screen; ?> 
0 голосов
/ 17 апреля 2015

Это легко сделать с помощью куки. Этот метод позволяет странице проверять сохраненные значения файлов cookie по высоте и ширине экрана (или значениям высоты и ширины порта просмотра в браузере), и, если они отличаются, он сбрасывает файлы cookie и перезагружает страницу. Код должен учитывать пользовательские настройки. Если постоянные файлы cookie отключены, используйте файл cookie сеанса. Если это не сработает, вы должны перейти с настройкой по умолчанию.

  1. Javascript: проверьте, установлены ли cookie-файлы высоты и ширины
  2. Javascript: если установлено, проверьте, соответствует ли screen.height & screen.width (или как вы хотите) текущему значению файла cookie
  3. Javascript: если cookie не установлен или не соответствует текущему значению, то: а. Javascript: создайте постоянный или сессионный файл cookie с именем (например, «shw») для значения текущего screen.height & screen.width.
    б. Javascript: перенаправить на SELF с помощью window.location.reload (). Когда он перезагрузится, он пропустит шаг 3.
  4. PHP: $ _COOKIE ['shw'] содержит значения.
  5. Продолжить с PHP

Например, я использую некоторые распространенные функции cookie, найденные в Интернете. Убедитесь, что setCookie возвращает правильные значения. Я поставил этот код сразу после тега head. Очевидно, что функция должна быть в исходном файле.

<head>
<script src="/include/cookielib.js"></script>
<script type=text/javascript>
function setScreenHWCookie() {
    // Function to set persistant (default) or session cookie with screen ht & width
    // Returns true if cookie matches screen ht & width or if valid cookie created
    // Returns false if cannot create a cookies.
    var ok  = getCookie( "shw");
    var shw_value = screen.height+"px:"+screen.width+"px";
    if ( ! ok || ok != shw_value ) {
        var expires = 7 // days
        var ok = setCookie( "shw", shw_value, expires)
        if ( ok == "" ) {
            // not possible to set persistent cookie
            expires = 0
            ok = setCookie( "shw", shw_value, expires)
            if ( ok == "" ) return false // not possible to set session cookie
        }
        window.location.reload();
    }
    return true;
}
setScreenHWCookie();
</script>
....
<?php
if( isset($_COOKIE["shw"])) {
    $hw_values = $_COOKIE["shw"];
}
0 голосов
/ 28 сентября 2014

JS:

$.ajax({
    url: "ajax.php",
    type: "POST",
    data: "width=" + $("body").width(),
    success: function(msg) {

        return true;
    }
});

ajax.php

if(!empty($_POST['width']))
    $width = (int)$_POST['width'];
0 голосов
/ 01 октября 2009

Единственный способ - это использовать javascript, а затем получить javascript для публикации на своем php (если вам действительно нужна серверная сторона). Это, однако, полностью упадет на его лице, если они выключат JavaScript.

0 голосов
/ 01 октября 2009

PHP работает только на стороне сервера, а не на хосте пользователя. Используйте JavaScript или jQuery для получения этой информации и отправки через AJAX или URL (? X = 1024 & y = 640).

0 голосов

Быстрый ответ - нет, тогда вы, вероятно, спрашиваете, почему я не могу сделать это с помощью php. ОК, это более длинный ответ. PHP - это серверный язык сценариев, и поэтому он не имеет ничего общего с типом конкретного клиента. Тогда вы можете спросить «почему я могу получить агент браузера от php?», Потому что эта информация отправляется с начальными заголовками HTTP по запросу на сервер. Поэтому, если вы хотите, чтобы информация о клиенте не отправлялась с заголовком HTTP, вы должны использовать язык сценариев клиента, такой как javascript.

0 голосов
/ 07 августа 2014

В PHP нет стандартного способа получить эту информацию. Однако это возможно, если вы используете стороннее решение. Детектор устройства 51Degrees для PHP обладает необходимыми свойствами:

Дает вам ширину и высоту экрана пользователя в пикселях. Чтобы использовать эти свойства, вам необходимо скачать детектор с sourceforge . Затем вам нужно включить следующие 2 строки в ваш файл / файлы, где необходимо определить высоту и ширину экрана:

<?php
require_once 'path/to/core/51Degrees.php';
require_once 'path/to/core/51Degrees_usage.php';
?>

Где путь / к / ядру - это путь к директории 'Core', которую вы скачали из sourceforge. Наконец, для использования свойств:

<?php
echo $_51d['ScreenPixelsHeight']; //Output screen height.
echo $_51d['ScreenPixelsWidth']; //Output screen width.
?>

Имейте в виду, что эти переменные могут содержать значение «Неизвестно» несколько раз, когда устройство не может быть идентифицировано.

...