Часто бывает нужно заранее знать ширину экрана. В
CSS
за это отвечает тэг @media.
Например, если Вы не хотите показывать блок класса .rightBanner
на экранах уже 1000px , Вы просто пишете
@media screen and (max-width: 1000px) {
.rightBanner {display: none;}
}
И браузер, получив такой CSS от сервера, скроет блок .rightBanner на узких экранах.
Но, что если Вы вообще не хотите отдавать браузеру какой-то контент. Чтобы сэкономить трафик или ускорить загрузку страницы.
Встаёт вопрос - как определить ширину экрана уже на этапе формирования ответа сервера.
Ответ - никак. По крайне мере если Вам нужна точная ширина и Вы не планируете делать финты с AJAX.
Если Вам просто нужно понять зашёл ли посетитель с мобильного устройства или с десктопа - это я покажу ниже
<?php
function isMobile() {
return 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"]);
}
$not_mobile = !(isMobile());
if ($not_mobile) {
echo'
<div class="rightBanner">
</div>
'
};
?>
Если браузер клиента передал один из упомянутых заголовков, то правый блок вообще не будет ему послан.
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"]));
Если остались вопросы - смело задавайте их в комментариях либо воспользуйтесь поиском по сайту
Рекомендую наш хостинг beget.ru |
Пишите на info@urn.su если Вы: |
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык. |
2. Хотите разместить на сайте рекламу, подходящуюю по тематике. |
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте |
4. Нашли на сайте ошибку, неточности, баг и т.д. ... ....... |
5. Статьи можно расшарить в соцсетях, нажав на иконку сети:
|