Php. Как узнать размеры экрана пользователя?

Главная  >>  Backend  >>  Php. Как узнать размеры экрана пользователя?

Редко, но случается необходимость определить размер экрана пользователя на уровне серверной части — например, на php. Но, как Вы понимаете — на серверной части узнать, на каком экране отображается страница невозможно..

Но. Невозможно узнать без применения небольшой хитрости, о которой я сейчас раскажу.

Узнать размер экрана можно, используя ajax-запрос с клиента на сервер.

Например, на сервере есть файл dimension.php.
С клиента отправляем POST на этот адрес:

В самом же файле принимаем значения $_POST[‘width’] и $_POST[‘height’].

Теперь везде в php-файлах Вы можете использовать сессионные значения высоты и ширины пользовательского экрана.

Это самый простой пример для предоставления логики — конечно же, здесь надо делать проверку входящих данных, ответ клиенту о статусе запроса и т.д. Но я хотел донести саму идею.


  • https://wpmaster.kz Андрей WPMaster.KZ

    Вот, почти то что нужно! Только с аяксом не дружу вообще. Автор, подскажи пожалуйста, хотя бы направление. Как мне на php сайте, отключить некоторые скрипты php только в мобильной версии? Речь идет о WordPress. Идея такая, при десктопе загружается всё, а при мобильном, некоторые скрипты в php файлах даже не загружаются. Я например, хочу убрать блоки рекламы и некоторые стандартные элементы из шаблона в мобильной версии. Как мне это организовать? Не могу придумать. Смотрю вроде статья свежая, значит сайт не заброшен у тебя, помоги если есть какие-то мысли.

    • http://onfor.info onfor

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

      Если абстрактно. При первой загрузке ты никак не будешь знать размер. Ну, разные прогрузки-перегрузки, конечно да — но опять-таки надо смотреть задачу конкретно.

      Несколько условных хитростей можно придумать — но у всех есть много НО.

      Например, при первом заходе на сайт ты пишешь размеры в куку (библиотека jquery.cookies.js, если нет опыта с аяксом) ну или все-таки сессию. Таким образом твой бек уже будет знать размер. Далее делаем location.reload() и при след заходе:
      а) ты знаешь размер и можешь оборачивать в if-ы нужные блоки
      б) по этим же if-ам нужно прекратить простановку размеров, чтоб не было цикличного релоада страницы.

      Не особо красивый вариант — но он сработает. Если не стоит вопрос поисковой красоты — имеет право на жизнь. Если вопрос поисковой оптимизации важен — надо думать дальше — не думаю, что поисковые роботы буду в восторге от перегрузки страницы при первом же заходе.

      Если что — пиши здесь или на me@onfor.info — постараюсь помочь)

  • https://wpmaster.kz Андрей WPMaster.KZ

    Спасибо что ответил. Проблема в том, что я хочу отключать скрипты не только от посетителей, но и от поисковиков. Из этого следует, что джава скрипты не пойдут, ПСы не умеют читать скрипты. Поэтому возникает проблема, если человек зайдет, у него нужные скрипты отключаться, а показать что сайт более быстрый для ПС я не смогу. А у меня цель показать именно для ПС. Вот в чем проблема.

    Нашел в сети php класс который узнает версию, мобильная или десктопная. Подключил к сайту, работает только тогда, когда подключаю в самом низу сайта, а верхние части не могу отключить, сайт просто конфликтовать начинает.

    Короче задумка почти провалилась. Сейчас тестирую костыль. Есть плагин шорткодов у которого есть функция отключение его на мобильных. Короче создал два шоткода, в одном начинающий тег комментариев <!-- в другом закрывающий -->.

    Вставил их в нужные коды, вроде как работает, в мобильном шотркод включается и код просто комментируется. Скорость загрузки вроде увеличилась, сейчас ещё по тестирую, посмотрю.

    В любом случае спасибо, что откликнулся.

    • https://wpmaster.kz Андрей WPMaster.KZ

      Короче, в одном шорткоде открывающий тег комментирования, в другом закрывающий.

      • http://onfor.info onfor

        Классно, если всё вышло. Задача специфическая, конечно.

        • https://wpmaster.kz Андрей WPMaster.KZ

          Да сам себе головняк просто выдумываю. Потом сижу и голову ломаю как это реализовать. Изучал си с++, поэтому в php более-менее разбираюсь, а в js вообще не могу понять почему-то, поэтому у меня такие вот затыки случаются. Вроде понимаю как сделать, а не могу. Но вроде сейчас работает хорошо, как надо, посмотрю как дальше будет, после переиндексации страниц.