Nikolino
@Nikolino

Как узнать разрешение экрана на php?

Допустим в слайдере на десктопе показываются картинки крупного размера, скажем 1000х1000, а на мобилках чтобы показывались картинки размера 500х500 (не css размера, а другие файлы картинок). Либо какие-то блоки из верстки не просто скрывались в display: none, а не выводились в коде вообще (чтобы облегчить html).

Это логично и правильно.

Как это сделать на php?

Только не средствами ajax, а так сказать, SEO-friendly. Не хочу разводить холиваров на тему умеют ли поисковики читать AJAX, но есть ли другие варианты?

Картинки можно выводить через прокси, которые на лету меняет размер картинок, с этим еще ок. Но если хочется из html кода убрать какой-то код вообще, то всё равно нужно как-то в php передать размер экрана или тип устройства.
  • Вопрос задан
  • 4332 просмотра
Пригласить эксперта
Ответы на вопрос 5
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Для этого в IMG теге есть специальное свойство: srcset
https://css-tricks.com/responsive-images-css/
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
а скрытие блоков в display: none, проблему производительности не решает
Вы правы. Именно поэтому придумали srcset
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988
В протоколе http нет заголовка с размерами устройства . Есть только юзер агент. Думаю для реальных задач достаточно признака ,mobile
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Никак, только средствами javascript. И если в некоторых случаях блоки выводятся в HTML-коде, а в некоторых нет - это наоборот с точки зрения SEO будет выглядеть подозрительно и быть похоже на клоакинг.
Ответ написан
@AlexJBod
Про юзер агент, мне кажется, правильно выше написали. Кроме mobile можно проверить на разные признаки, android, например.

Я делал как здесь, на моих устройствах сработало.

https://www.andreyolegovich.ru/code/php/mobile_hea...

Про клоакинг не скажу так как сам скрывал только второстепенные блоки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы