Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
 Аватар для Protos73
7 / 6 / 7
Регистрация: 10.08.2015
Сообщений: 63

PHP разрешение экрана

04.02.2016, 11:33. Показов 5469. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не убивайте за такой код.

В PHP переменную я получаю значение из JS кода. Перевожу это строковое значение в int и пытаюсь использовать в условии.

PHP
1
2
3
4
5
6
7
<?
$width = '<script>document.write(screen.width);</script>';
$width = intval($width);
if ($width <= 1024): 
   print_r($width);
endif;
?>
Почему после преобразования intval значение становится 0? Принт выводит 0, условие выполняется тоже со значением 0. Значение до преобразования intval равняется моему разрешению экрана.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2016, 11:33
Ответы с готовыми решениями:

Как узнать разрешение экрана с помощью PHP?
Никак не могу найти в своем справочнике. А очень нужно...

Как узнать разрешение экрана
всем привет!... задался таким вопросом как мобильная версия сайта. сама суть создание сайта не проблема, но появился такой вопрос как...

Как узнать разрешение экрана?
Помогите новичку плз! Как средствами PHP узнать разрешение экрана? Или? Как передать значение переменных из JS в PHP?

15
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.02.2016, 11:38
Цитата Сообщение от Protos73 Посмотреть сообщение
В PHP переменную я получаю значение из JS кода
Как ты думаешь, зачем нужно 2 языка: php и js, почему бы не использовать только 1 из них?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
04.02.2016, 11:41
можно явно привести к инту.
PHP
1
$width = (int)$width;
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.02.2016, 11:43
Цитата Сообщение от Пифагор Посмотреть сообщение
можно явно привести к инту.
можно, но результат от этого не изменится
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
04.02.2016, 11:51
PHP
1
$width = '<script>document.write(screen.width);</script>';
судя по записи, в $width приходит значение типа строка и если строку преобразовать в инт, почему же не измениться???
если print_r видит 0, значит просто приходит нулевое значение или это PHP с JS не дружит???
0
 Аватар для Protos73
7 / 6 / 7
Регистрация: 10.08.2015
Сообщений: 63
04.02.2016, 11:53  [ТС]
Jewbacabra, Я же заранее предупредил что говнокод. Если бы ты подсказал бы как узнать разрешение экрана на PHP было бы здорово.

Пифагор, как и говорит Jewbacabra, результат не меняется.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.02.2016, 11:54
Цитата Сообщение от Пифагор Посмотреть сообщение
почему же не измениться???
Согласно преобразованию строки в число строка <script>document.write(screen.width);</script> преобразуется в 0. Каким бы способом ее не переводить.
Цитата Сообщение от Пифагор Посмотреть сообщение
PHP с JS не дружит???
тот же вопрос
Цитата Сообщение от Jewbacabra Посмотреть сообщение
зачем нужно 2 языка: php и js, почему бы не использовать только 1 из них?
0
 Аватар для Protos73
7 / 6 / 7
Регистрация: 10.08.2015
Сообщений: 63
04.02.2016, 11:54  [ТС]
Пифагор, PHP успешно принимает строковое значение и print_r выводит его строкой правильно. Но мне необходимо использовать его как число. Почему после преобразования строки в число результат получается 0??
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
04.02.2016, 11:54
Цитата Сообщение от Protos73 Посмотреть сообщение
Если бы ты подсказал бы как узнать разрешение экрана на PHP было бы здорово.
хорошо: никак.
А чтобы понять почему попробуй ответить на мой вопрос.
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
04.02.2016, 12:04
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Согласно преобразованию строки в число строка <script>document.write(screen.width);</script> преобразуется в 0. Каким бы способом ее не переводить.
Точно. а в JS это, кажется, будет isNaN, если я не ошибаюсь...

Добавлено через 4 минуты
Цитата Сообщение от Protos73 Посмотреть сообщение
Почему после преобразования строки в число результат получается 0??
а как интерпретатор строку
PHP
1
<script>document.write(screen.width);</script>
приведет к числу?
если мы проверим
PHP
1
is_int(<script>document.write(screen.width);</script>)
то, как минимум, вернется false/

Добавлено через 3 минуты
а раз возвращается false, а Вы пытаетесь получить целочисленное значение переменной, то получаете ноль...
1
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
04.02.2016, 12:17
Лучший ответ Сообщение было отмечено Protos73 как решение

Решение

Помоему Jewbacabra, пытается донести до ТС-а что сначала выполняется php код на сервере, а только потом, когда выполнится весь php код, выполняется js код в браузере, соответственно вот эта запись
PHP
1
$width = '<script>document.write(screen.width);</script>';
Так и останется строкой, она не вычислит разрешение экрана, и intval выполняет все правильно.
Поэтому и не будет разницы если явно привести к числу

Я могу предложить такой вариант, получить разрешение экрана, и ajax`ом передавать в php, так как вы пытаетесь это реализовать, получить разрешение экрана не получиться
1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.02.2016, 12:21
PHP напрямую с JS не работает. Сначала нужно вывести JS-код. Затем JS-код должен создать в форме input'ы, в которые занесёт информацию об экране.
Потом отправляется форма и данные получаем уже в php.
Также возможен вариант с AJAX-запросом:
При загрузке страницы делаем ajax-запрос на сервер, передавая размеры экрана.
1
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
04.02.2016, 12:24
Xenox, Para bellum, скажите, а мое вышеизложенное размышление в верном направлении или нет?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.02.2016, 13:22
Цитата Сообщение от Пифагор Посмотреть сообщение
а мое вышеизложенное размышление в верном направлении или нет?
Цитата Сообщение от Пифагор Посмотреть сообщение
судя по записи, в $width приходит значение типа строка и если строку преобразовать в инт, почему же не измениться???
Цитата Сообщение от Пифагор Посмотреть сообщение
а как интерпретатор строку приведёт к числу
Да, всё верно. То есть, в данном случае php приводит к типу "int" именно саму строку JS-кода, а не то, что этот JS возвращает, выполняясь в обозревателе.

Добавлено через 6 минут
А почему получается именно ноль, можно прочесть здесь: http://php.net/manual/ru/langu... conversion
1
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
04.02.2016, 13:30
Цитата Сообщение от Para bellum Посмотреть сообщение
То есть, в данном случае php приводить к типу "int" именно саму строку JS-кода, а не то, что этот JS возвращает
поскольку
PHP
1
$width = '<script>document.write(screen.width);</script>';
и к инту интерпретатор пытается привести значение переменной, а значение переменной есть нечисловой string)))
0
 Аватар для Protos73
7 / 6 / 7
Регистрация: 10.08.2015
Сообщений: 63
04.02.2016, 14:34  [ТС]
Ответ получен, вопрос закрыт. Прошу прощения за глупость
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.02.2016, 14:34
Помогаю со студенческими работами здесь

разрешение отличное от php
Может ли страница на php иметь разрешение отличное от php? Пояснить. Добавлено через 36 секунд Например *.phtml или *.php4

PHP на IIS: разрешение на чтение и запись файлов.
Я в настройках iis поставил разрешение на чтение и запись файлов. Но почему-то, когда я в скрипте открываю файл, чтобы в него дописать,...

Узнать из скрипта php разрешение монитора пользователя
Возможно-ли такое, если да, то как? Всем спасибо!

Почему разрешение экрана планшета на 1280 x600 , а разрешение экрана проектора 854 x 480?
Привет всем, вчера я посмотрел такой плашет с проектором, разрешение экрана планшета на 1280 x600, а разрешение экрана проектора 854 x...

Разрешение экрана монитора и разрешение экрана браузера
Почему разрешение экрана монитора и разрешение экрана браузера отличаются? В настройках виндовс экрана стоит 1366 пкс, а в браузере body...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru