- Как определить ширину экрана PHP
- Пример кода на PHP
- Результат
- Комментарии к коду
- Ваш HTTP_USER_AGENT
- Как должен выглядеть код PHP для запроса разрешение браузера клиента?
- Как заполучить размеры экрана пользователя через PHP
- 5 последних уроков рубрики «PHP»
- Фильтрация данных с помощью zend-filter
- Контекстное экранирование с помощью zend-escaper
- Подключение Zend модулей к Expressive
- Совет: отправка информации в Google Analytics через API
- Подборка PHP песочниц
- Как заполучить размеры экрана пользователя через PHP
- 5 последних уроков рубрики «PHP»
- Фильтрация данных с помощью zend-filter
- Контекстное экранирование с помощью zend-escaper
- Подключение Zend модулей к Expressive
- Совет: отправка информации в Google Analytics через API
- Подборка PHP песочниц
Как определить ширину экрана PHP
Часто бывает нужно заранее знать ширину экрана. В CSS за это отвечает тэг @media.
Например, если Вы не хотите показывать блок класса .rightBanner на экранах уже 1000px , Вы просто пишете
И браузер, получив такой CSS от сервера, скроет блок .rightBanner на узких экранах.
Определить реальную текущую ширину экрана можно с помощью JavaScript про это есть статья
Но, что если Вы вообще не хотите отдавать браузеру какой-то контент. To сэкономить трафик или ускорить загрузку страницы.
Встаёт вопрос — как определить ширину экрана уже на этапе формирования ответа сервера.
Ответ — никак. По крайне мере если Вам нужна точная ширина и Вы не планируете делать финты с AJAX.
Если Вам просто нужно понять зашёл ли посетитель с мобильного устройства или с десктопа — это я покажу ниже
Пример кода на PHP
Результат
Если браузер клиента передал один из упомянутых заголовков, то правый блок вообще не будет ему послан.
Комментарии к коду
preg_match возвращает 1 если найдёт в $_SERVER[«HTTP_USER_AGENT»] один из перечисленных заголовков: android, avantgo, blackberry и так далее.
В таком случае $not_mobile это 0 или FALSE и условие if не выолняется.
Список заголовков наверняка уже устарел, когда Вы читаете эту статью, но, во-первых, Вы сами можете его дополнить. Во-вторых нужны ли все возможные заголовки или достаточно основных решать Вам.
Если Вы не собираетесь использовать функцию повторно, можно ограничиться строчкой:
$not_mobile = !(preg_match(«/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i», $_SERVER[«HTTP_USER_AGENT»]));
Ваш HTTP_USER_AGENT
В следующем блоке вы можете увидеть свой HTTP_USER_AGENT
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1623.0 Safari/537.36
Проверка — распознал ли скрипт ваше устройство как мобильное или нет
Ваше устройство не распознано как мобильное
Если скрипт неверно распознал ваше устройство — напишите мне в телеграм @andreyolegovichru
Как должен выглядеть код PHP для запроса разрешение браузера клиента?
Добрый день, помогите пожалуйста
у меня задача, узнать у клиента/посетителя ширину браузера, если она меньше или равна 1024 то нужно вернуть TRUE
Т.е. php код со встроенным javascript
Пытался гуглить, нагуглил
PHP плохо знаю, но как понимаю нужно просто прочитать ширину, потом по условию = else false
Что то вроде того
В настоящее время требуется уменьшать размер контента для тех же мобильных устройств.
Например:
На странице слайдер с изображением размерами 1920×500 пикс. в формате *.jpg весом в 40-50 Кбайт., 3 штуки – 150 Кб.
Представляете сколько можно сэкономить времени на загрузку страницы отдавая клиенту значительно меньшие по размеру изображения зная размер экрана клиента.
\n"; echo "Высота экрана: ". $_GET['height'] ."
\n"; > else < // передаем переменные с размерами echo "\n"; exit(); > ?>
Вам это для чего?
если для дизайна, почитайте в сторону адаптивной верстки и CSSqueries
если для работы, то такое предложение, но оно плохое:
1. загружается php файл.
2. в самом начале проверяете куки.
2.1. если куки найдены, то в куках написано ваше разрешение экрана
2.2. если куки не найдены, то
2.2.1 перебрасываете пользователя на отдельную страницу, на которой яваскриптом определяется разрешение. это разрешение записывается в куку яваскриптом (читай $.cookie) и снова пользователя перебрасываем назад.
все что ушло на клиент (а JS отрабатывает только на клиенте) обратно в php уже не получить. Только AJAX-ом отправить данные на сервер с клиента.
Хорошо, допустим я гуру в 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
Просмотров: 15291
Правила перепечатки
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 сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
Как заполучить размеры экрана пользователя через 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
Просмотров: 15292
Правила перепечатки
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 сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.