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

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

04.02.2016, 11:33. Показов 5446. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru