Php получить разрешение

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

Мне нужно найти разрешение экрана экрана пользователя, который посещает мой сайт?

14 ответов

Мы исказили текст в ответ на заблокированную вами рекламу

Так как проект зависит от показов рекламы, пожалуйста, внесите наш сайт в список разрешенных сайтов вашего блокировщика рекламы.
Мы уверены, что данный сайт, неоднократно вам помогал решить вашу проблему. И мы убеждены, что он будет помогать вам в дальнейшем.

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

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

JQuery

PHP (some_script.php)

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

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

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

PHP — это серверный язык — он выполняется только на сервере, а полученный результат программы отправляется клиенту. Таким образом, нет информации о «экране клиента».

Тем не менее, вы можете сообщить клиенту, что их разрешение экрана через JavaScript. Напишите небольшой скриптлет для отправки вам screen.width и screen.height — возможно, через AJAX или, скорее всего, с начальной «страницей перехода», которая находит его, затем перенаправляется на http://example.net/index.php?size=AxB

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

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

Я нашел, что CSS внутри моего html внутри моего php помогло.

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

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

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

Единственный способ — использовать javascript, а затем получить javascript, чтобы опубликовать его на ваш php (если вам действительно нужна серверная сторона). Это, однако, полностью упадет на его лице, если они отключат javascript.

Это можно легко сделать с помощью файлов 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 вернет правильные значения. Я поместил этот код сразу после заголовка. Очевидно, что функция должна быть в исходном файле.

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

    qaru.site

    Php получить разрешение

    Получить расширение файла — не самая сложная задача. Но подходов к ее решению может быть несколько. Давайте попробуем рассмотреть несколько возможных вариантов и понять принципы их работы.

    Считаете, что вопрос пустяковый и все тут просто как 2 пальца? Может быть, только недавно мне встретилась занятная бредострочка с толстенным регулярным выражением и все для того, что бы просто получить несколько символов в конце строки после последней точки. Зачем? Итак, начнем с пяти наиболее распространенных способов. Без использования регулярных выражений (только не подумайте, что я считаю их злом). Писать буду как просто и доступно, это не научная статья, а авторская заметка.

    Способ первый

    1. function getExtension1($filename) <
    2. return end(explode(«.», $filename));
    3. Логика такова: используя функцию explode(), полученная строка преобразуется в массив строк, границами которых в оригинале был разделитесь «точка». И все бы хорошо, если речь идет об имени файла в стиле «file.txt», но как быть если точек несколько? Для этого end() возвращает последний элемент массива, т.е. то, что было после последней точки.

      Способ второй

      1. function getExtension2($filename) <
      2. $path_info = pathinfo($filename);
      3. return $path_info[‘extension’];
      4. Здесь на помощь приходит функция pathinfo(), которая возвращает ассоциативный массив, содержащий информацию о нужном нам файле. И если ваша задача узнать не только расширение файла, а так же полный путь к нему и полное имя файла, то этот способ для вас: массив, возвращаемый данной функцией, содержит элементы dirname, basename и extension — в них вся нужная информация.

        Способ третий

        1. function getExtension3($filename) <
        2. return substr($fileName, strrpos($fileName, ‘.’) + 1);

        В данном случае strrpos() возвращает позицию последней точки в строке, а substr() вырезает все символы, начиная с полученной ранее позиции точки, до конца строки. Что бы избавится от самой точки в полученной подстроке, мы увеличивает начало старта на одно смещение вправо (+1).

        Способ четвертый

        1. function getExtension4($filename) <
        2. return substr(strrchr($fileName, ‘.’), 1);
        3. >
        4. Работает следующим образом: strrchr() возвращает участок строки, следующий за указанным параметром (точкой в нашем случае), после чего substr() отрезает первый символ — точку.

          Способ пятый

          1. function getExtension5($filename) <
          2. return array_pop(explode(«.», $filename));
          3. Данный способ очень похож на первый. array_pop() — выталкивает элемент в конце массива, end() — устанавливает внутренний указатель массива на последний элемент.

            Что работает быстрее? Да, в прочем, на практике результаты выполнения и всех способов примерно одинаковые. Для подтверждения своих догадок провел небольшой тест, прогнав в цикле каждый из вариантов по 50000 раз:
            Способ #1: 0.6777439 сек.
            Способ #2: 0.5664740 сек.
            Способ #3: 0.6604638 сек.
            Способ #4: 0.4782789 сек.
            Способ #5: 0.6564250 сек.

            m.habr.com

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

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

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

          4. 19631 просмотр

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

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

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

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

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

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

toster.ru

Получить расширение файла в PHP

В данной статье я расскажу очень простые способы, как можно получить расширение файла средствами PHP. Опишу все подробно. Для начала заносим название файла в переменную:
Далее нам поможет функция Explode с помощью которой разбиваем строку на подстроки.
В качестве разделителя используется символ точки (.), То есть символ разделения названия файла от его расширения.

Последнее что нужно, это взять последний элемент массива. В этом нам поможет функция End:
Вот и все, теперь в переменной $mime содержаться значение расширения файла.

Эту операцию можно осуществлять с помощью функции:
Начиная с версии PHP 5 разработчики PHP усилили требования к коду. В частности, это касается работы функций, принимающих в качестве аргументов — ссылки на переменные, массивы и т.п. Поэтому данная функция может вывести ошибку:
Причина ошибка является в передаче на вход функций, требующих указателя на переменную, результата выполнения другой функции.

В данном случае мы видим как результат работы функции Explode передается непосредственно как параметр в функцию End. Но функция End работает с указателем на массив, а не со значением массива.

Для решения необходимо сперва перенести значение в временную переменную, и только потом передаем в End указатель на эту переменную.
Собственно все ошибки подобного рода решаются именно таким образом. Если в вашей программе где-то стала вылетать вышеуказанная ошибка, то просто создавайте временную переменную.

Таким же способом можно получить расширения файла, но вместо функции End используется функция Array_pop:
Функция Array_pop удаляет элемент в конце массива, то есть не только возвращает последнее значение массива. На одну операцию выполняется более чем с функцией End, но разница настолько маленькая, что на это даже не стоит акцентировать внимание.

Выполнить поиск расширения можно используя вместе функцию Substr и функцию Strrpos:
Чтобы избавиться самой точки в полученном подстроке, увеличиваем начало старта на одно смещение вправо (1).

Существует еще один способ:
Работает следующим образом: функция Strrchr возвращает участок строки, следующей за указанным параметром, после чего Substr отрезает первый символ — точку.

Существует также функция Pathinfo, с помощью которой можно получить расширение файла. По моему мнению, это лучший вариант. Для этого выполняем простой код:
Здесь описаны простые способы получения расширение файла, но помните, это только для ознакомления, или даже для демонстрации возможностей языка PHP. На самом деле, вам самим решать, каким образом использовать для различных случаев возможен особый подход.

profiphp.ru

CoderBooster

Общая структура имени файла

Строковое представление имени файла состоит из нескольких частей: относительный или абсолютный путь директории, текстовый идентификатор и расширение. Множество задач требуют получения информации, хранящейся в такой строке. Например, при сохранении нового файла необходимо проверить его будущую директорию на существование. В РHP такие задачи можно решить несколькими способами. Однако имеется набор специальных встроенных функций.

Для получения всей информации из пути и имени файла есть функция pathinfo() . Первый её параметр является обязательным. Он ожидает получить строку, содержащую имя файла. Если второй параметр остается не заполненным, функция вернет ассоциативный массив, имеющий следующие поля: dirname — путь до директории расположения, basename — имя файла, включая расширение, extension — расширение файла, filename — имя файла без расширения. Если что-либо из этого списка отсутствует в строке, то поле не будет создано.

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

Список специальных констант функции pathinfo:

  • PATHINFO_DIRNAME — извлечение места расположения файла.
  • PATHINFO_BASENAME — извлечение имени файла с расширением.
  • PATHINFO_EXTENSION — извлечение только расширения.
  • PATHINFO_FILENAME — извлечение имени файла без расширения.
  • Выделение имени файла или каталога

    Помимо pathinfo() , выполняющей общие задачи, PHP имеет две специализированные функции: basename() — получение имени и расширения файла, dirname() — извлечение директории.

    Функция basename() принимает два параметра, но только первый является обязательным. Он ожидает получить строку, содержащую полное имя файла. Во втором параметре можно указать суффикс имени файла. Он также является строкой и нужен для отсечения лишней части у результата. Например, именем файла является строка « players-scores.xlsx », суффикс заданный как « .xlsx » заставит функцию basename() вернуть строку « players-scores ».

    Функция dirname() возвращает имя каталога из переданного пути. Её действие противоположно предыдущей функции. В качестве первого параметра она принимает строку, содержащую определение пути в файловой системе. Второй параметр является не обязательным и задается целочисленным значением. Он определяет, сколько уровней вложенности нужно откинуть. Например, задав второй параметр значением 2 для определения пути « /var/lib/test/some-file.txt », вы получите результат « /var ». Если оставить второй параметр не заданным или установить его в значение по умолчанию « 0 », возвратится весь путь « /var/lib/test ».

    Заметка
    Если в строке, переданной функции dirname() , не содержится ни одного слеша, будет возвращено значение « . ». Такое поведение является логичным. Если в строке нет слешей, то определение директории отсутствует. Это значит, что, скорее всего, строка является именем файла в текущей директории.

    Преобразование относительного пути в абсолютный

    Иногда пути указываются относительно текущего местоположения. Например, строка « ../temp/some-file.txt » говорит о том, что файл с именем « some-file.txt » лежит на одну директорию выше текущей в папке « temp ». Преобразовать такой путь к абсолютному значит, перестроить его относительно корня файловой системы.

    PHP имеет встроенную функцию realpath() . Она принимает всего один строковой параметр, в котором указывается путь в файловой системе. При формировании абсолютного пути учитываются символические ссылки. Если передать в качестве параметра пустую строку или null , будет возвращен абсолютный путь до текущей директории.

    Заметка
    Особенностью функции realpath() является то, что она непросто преобразует строку, но и взаимодействует с файловой системой. Если файл являющейся конечной точкой пути не существует, функция вернет false . Если текущий пользователь не имеет прав доступа к какой-либо директории в пути, функция также вернет false .

    coder-booster.ru