За последние 24 часа нас посетил 186201 программист и 1958 роботов. Сейчас ищут 1215 программистов ...

PHP условие на разрешение экрана?

Тема в разделе "PHP для новичков", создана пользователем romagromov, 19 мар 2018.

  1. romagromov

    romagromov Активный пользователь

    С нами с:
    17 дек 2015
    Сообщения:
    73
    Симпатии:
    0
    Здравствуйте!
    Ничего не нашел по теме, спрошу у вас.
    Многие знают, что в адаптивном дизайне часто применяется CSS метод - display: none; с применением параметра, например @media (max-width: 449px).
    Фактически содержимое загружается в браузер, но просто не отображается в нем.

    Существует ли способ, в котором можно задать PHP условие, которое будет срабатывать на разрешение экрана? Таким образом можно значительно уменьшить вес страницы для мобильных устройств.

    Может есть готовое решение?
    Спасибо.
     
  2. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    А в чем профит? Я понимаю когда скорости были диалаповские, но пардоньте, писать для этого пхп скрипт - это моветон!
    Причем не просто срипт, а нужно через JS определить размер экрана, отдать это пхп скрипту. А когда что-то нужно будет поменять в верстке, тоже будете ковырять пхп код?
     
  3. romagromov

    romagromov Активный пользователь

    С нами с:
    17 дек 2015
    Сообщения:
    73
    Симпатии:
    0
    Ну AMP страницы, это своего рода урезанный оригинал. Зачем они нужны, ведь скорости не диалаповские...

    Например есть желание убрать целый сайдбар для мобильных устройств.
    Там много контента, изображения, ссылки, дополнительные стили и т.д.
    Зачем это все тянуть на несчатную трубу, если юзер все равно это не увидит?

    Ну и мобильный интернет не всегда быстрый.

    Писать скрипт - нет. Но неужели задача первый раз такая? Думал есть готовые решения.
     
  4. rishard

    rishard Новичок

    С нами с:
    20 сен 2016
    Сообщения:
    228
    Симпатии:
    27
    полно.
    Но я реально не врубаюсь;
    вы ищете древний как мир способ вытащить через js разрешение экрана и передать его на сервер?
    Да на здоровье; вот вам скрипт, обусловьте что хотите (elseif) и вперед:

    PHP:
    1. // проверяем существование переменных $width и $height
    2. if (isset($_GET['width']) AND isset($_GET['height'])) {
    3.     // если переменные существуют, то выводим полученные значения на экран
    4.     echo 'Ширина экрана: ' . $_GET['width'] . "<br />\n";
    5.     echo 'Высота экрана: ' . $_GET['height'] . "<br />\n";
    6. }
    7.  
    8. // если переменные не существуют, то выполняем следующее
    9. else {
    10.     // PHP сгенерирует код JavaScript, который обработает браузер
    11.     // пользователя и передаст значения обратно PHP-скрипту через протокол HTTP
    12.     echo "<script language='javascript'>\n";
    13.     echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
    14.             . "width=\" + screen.width + \"&height=\" + screen.height;\n";
    15.     echo "</script>\n";
    16. }
    17.  
    18. ?>
    Скрипт рабочий, пробуйте. Ежели будут кракозябли, кодировку прописать.
     
    #4 rishard, 20 мар 2018
    Последнее редактирование: 20 мар 2018
  5. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Ну так именно для такого можно отдельно сделать мобильную версию сайта:
    site.com - для десктопов
    m.site.com - для мобилок
    Соответственно, как в варианте адаптивного дизайна, так и в разделении по доменам есть свои плюсы и минусы.
    Можете конечно и через PHP адаптивку сделать, основываясь на коде указанном выше.
    Решать вам.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Тут штука такая, чтобы узнать разрешение экрана, надо сначала загрузить сайт, поскольку браузер при запросе своего разрешения не передаёт. Т.е. сначала грузится код с JS, который определяет разрешение экрана, потом он запускает загрузку php. Соответственно, с отключенным JS всё это радостно не работает. Мобильные, конечно, ещё можно определять по заголовкам - всяких скриптов Mobile Detect полно в сети. Но они не точные, поэтому на их основе не определяют обычно вёрстку. Короче, лучше адаптива ничего не придумали.
     
    AlexandrS нравится это.
  7. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Лучше и не скажешь! ;)
    Так что это еще одно подтверждение того, что не стоит заниматься ерундой! :)