Test

Получение разрешения экрана с помощью PHP

Это делается с помощью JavaScript, а не PHP. PHP выполняется только на стороне сервера. Хотя, анализируя разрешение экрана пользователя, имейте в виду, что не все пользователи просматривают весь экран!

19 ответов

Вы не можете сделать это с помощью чистого PHP. Вы должны сделать это с помощью JavaScript. Есть несколько статей, написанных о том, как это сделать.

По сути, вы можете установить cookie, или вы даже можете сделать Ajax для отправки информации на PHP script. Если вы используете jQuery, вы можете сделать это примерно так:

$(function() < $.post('some_script.php', < width: screen.width, height:screen.height >, function(json) < if(json.outcome == 'success') < // do something with the knowledge possibly? >else < alert('Unable to let PHP know what the screen resolution is!'); >>,'json'); >); 

PHP (some_script.php)

'success')); > else < echo json_encode(array('outcome'=>'error','error'=>"Couldn't save dimension info")); > ?> 

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

@KyleFarris . я не очень хорошо разбираюсь в jquery и json . то, как будет выглядеть код, выглядит следующим образом: $(function() < $.post('header.php', < width: 800px >, function(json) < if(json.outcome == 'success') < header-800px.php // do something with the knowledge possibly? >else < header.php; >>,’json’); >);

Читайте также:  Javascript get last characters

Я не согласен с вами по поводу разрешения зрения, однако, ответ отличный! Я думаю, что эта информация может использоваться для статистики и банов. Я бы предпочел пользовательский агент и IP для этого. Разрешение экрана тоже хорошо!

Какое значение имеет «some_script.php»? Это должно быть имя страницы, загружающей скрипт? Может ли это быть общим для всех страниц?

Непосредственно с PHP невозможно, но.

Я пишу этот простой код, чтобы сохранить разрешение экрана на сеансе PHP для использования в галерее изображений.

Это приведет к отображению заголовка меньшего размера, если экран имеет разрешение 480 пикселей или меньше. Поэтому нет необходимости передавать какие-либо вары с помощью JS или подобных.

Используйте JavaScript ( screen.width и screen.height IIRC, но я могу ошибаться, не делал JS через некоторое время). PHP не может этого сделать.

Вы можете попробовать RESS (Responsive design + Server side components), см. этот учебник:

Это очень простой процесс. Да, вы не можете получить ширину и высоту в PHP. Это правда, что JQuery может обеспечить ширину и высоту экрана. Сначала перейдите в https://github.com/carhartl/jquery-cookie и получите jquery.cookie.js. Вот пример использования php для получения ширины и высоты экрана:

           

Using jquery.cookie.js to store screen height and width

";> if(isset($_COOKIE['sh'])) < echo "Screen height: ".$_COOKIE['sh']."
";> ?>

У меня есть тест, который вы можете выполнить: http://rw-wrd.net/test.php

Я не думаю, что вы можете определить размер экрана только с PHP, но вы можете обнаружить пользовательский агент.

 if (isset($DEVICE_TYPE) and $DEVICE_TYPE=="MOBILE") < echo '' > ?> 

Полностью рабочий пример

Я не смог найти реально работающий пример PHP, который бы «невидимо» (без параметров URL) возвращал размер экрана клиента и другие свойства серверному PHP, поэтому я собрал этот пример.

JS заполняет и отправляет скрытую форму (сценарий PHP из массива свойств JS), POST самому себе (данные теперь доступны в PHP и возвращает данные в виде таблицы).

(Проверено в «нескольких» браузерах.)

    table,trtd "; foreach($clientProps as $p) < //create hidden form echo ""; > echo " "; echo ""; >else< echo ""; foreach($clientProps as $p) < //create output table echo ""; > echo "
".ucwords(str_replace('.',' ',$p)).":".$_POST[str_replace('.','',$p)]."
"; > ?>

Возвращенные данные extract в переменные. Например:

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

  
$width = " "; $height = " "; echo 'This screen is : '.$width.' x '.$height; 

Обратите внимание, что это вывод сценария, каждый раз, когда вы его повторяете — поэтому вы не можете использовать его для вычисления ширины — в основном $ width будет состоять из около 80 символов и не может быть преобразовано в число

это не дает вам высоту / ширину экрана — это переменная, поэтому единственное, что вы можете сделать с помощью этого метода, это отобразить размер (не сохранять его или делать с ним математику).

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

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

  • Javascript: проверьте, установлен ли файл cookie высотой и шириной.
  • Javascript: если установлено, проверьте, соответствует ли screen.height и screen.width(или что вам угодно) текущему значению файла cookie
  • Javascript: Если cookie не установлен или он не соответствует текущему значению, то: а. Javascript: создать постоянный или сеансовый файл cookie с именем (например,) ‘shw’ для значения текущего экрана screen.height и screen.width.
    б. Javascript: перенаправление на SELF с помощью window.location.reload(). Когда он перезагрузится, он пропустит шаг 3.
  • PHP: $_COOKIE [‘shw’] содержит значения.
  • Продолжить с PHP

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

   .

Источник

Как должен выглядеть код PHP для запроса разрешение браузера клиента?

Добрый день, помогите пожалуйста
у меня задача, узнать у клиента/посетителя ширину браузера, если она меньше или равна 1024 то нужно вернуть TRUE
Т.е. php код со встроенным javascript
Пытался гуглить, нагуглил

  

PHP плохо знаю, но как понимаю нужно просто прочитать ширину, потом по условию = else false
Что то вроде того

В настоящее время требуется уменьшать размер контента для тех же мобильных устройств.
Например:
На странице слайдер с изображением размерами 1920×500 пикс. в формате *.jpg весом в 40-50 Кбайт., 3 штуки – 150 Кб.

Представляете сколько можно сэкономить времени на загрузку страницы отдавая клиенту значительно меньшие по размеру изображения зная размер экрана клиента.

Hereigo

\n"; echo "Высота экрана: ". $_GET['height'] ."
\n"; > else < // передаем переменные с размерами echo "\n"; exit(); > ?>

Вам это для чего?
если для дизайна, почитайте в сторону адаптивной верстки и CSSqueries

если для работы, то такое предложение, но оно плохое:
1. загружается php файл.
2. в самом начале проверяете куки.
2.1. если куки найдены, то в куках написано ваше разрешение экрана
2.2. если куки не найдены, то
2.2.1 перебрасываете пользователя на отдельную страницу, на которой яваскриптом определяется разрешение. это разрешение записывается в куку яваскриптом (читай $.cookie) и снова пользователя перебрасываем назад.

все что ушло на клиент (а JS отрабатывает только на клиенте) обратно в php уже не получить. Только AJAX-ом отправить данные на сервер с клиента.

Isolution666

Хорошо, допустим я гуру в media css, и я знаю как сделать сайт адаптивным. С точки зрения логики, я хотел бы некоторые элементы для телефона не «дисплэйнойнить», прости господи, а чтобы их вообще не было, даже в коде, даже в комментариях кода, вообще нигде. Во-первых, чтобы не грузить телефон лишним контентом, чтобы быстрее грузился, и ещё, к примеру есть скрипт, который при загрузке картинки на сайт, делает ресайз на 5 размеров, от оригенала до суперлёгкого превью, так вот, с точки зрения безопасности:
код по типу

Не безопасен! ибо хакеры и xss-атаки не дремлют. Наровясь напихать всякой дряни.
РАЗ
Подставлять преффиксы через функцию класса, — зная размер экрана, значительно легче
ДВА.
То есть, зная размер экрана, убирается вся шелуха одним махом. Картинки — мелкие
Не нужные для мобильной версии блоки — отсутствуют.
Юзеру комфортно
Владельцу — спокойно
И все счастливы ))
Админ.
Короче, надо без всякого говнокода знать размер экрана, чтобы даже когда javascript отключён, всё рендерится и статистика просмотров идёт, как это сделать на php — до сих пор голову ломаю.

Источник

Как заполучить размеры экрана пользователя через PHP

Через PHP данную задачу не решить, но можно поступить хитрее и воспользоваться финтом, который представлен в этом уроке.

Делаем AJAX запрос на сторону PHP скрипта, передав нужную нам информацию:

$(function() < $.post('some_script.php', < width: screen.width, height:screen.height >, function(json) < if(json.outcome == 'success') < // запрос прошёл успешно >else < alert('Unable to let PHP know what the screen resolution is!'); >>,'json'); >);

Далее обрабатываем информацию на стороне сервера:

if(isset($_POST['width']) && isset($_POST['height'])) < $_SESSION['screen_width'] = $_POST['width']; $_SESSION['screen_height'] = $_POST['height']; echo json_encode(array('outcome'=>'success')); > else < echo json_encode(array('outcome'=>'error','error'=>"Couldn't save dimension info")); >

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://stackoverflow.com/questions/1504459/getting-the-screen-resolution-using-php
Перевел: Станислав Протасевич
Урок создан: 20 Декабря 2015
Просмотров: 15294
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Источник

Оцените статью