Необходимость динамического размера экрана

Мне нужно иметь возможность читать размер экрана во время выполнения php-скрипта. Поскольку это проблема на стороне клиента, я создал небольшой скрипт, который выполняет javascript для получения размера экрана. Я вызываю этот скрипт из своей программы php с помощью curl. Он отлично работает .. почти. Возвращаемое значение верное, но не в той форме, которую может использовать php. Я пробовал это, установив cookie, но возвращаемое значение cookie всегда является значением из предыдущего вызова.

если вы хотите увидеть, как он работает, перейдите сюда: 3wings.com/testScreenSize.php

Спасибо за вашу помощь.

testScreenSize.php Код:

<?php
define(HTTPS_SERVER,'http://3wings.com');
$br='<br>';
$url = HTTPS_SERVER. '/getScreenSize.html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
$ret = curl_exec($ch);
echo curl_error($ch);
curl_close($ch);
var_dump($ret);echo $br;
echo ' $ret '.$ret.$br;
$scrwidth = $ret*1;
echo ' scrwidth '.$scrwidth.$br;
$cookieval = $_COOKIE['scrwidth'];
echo ' $cookieval '.$cookieval.$br;

getScreenSize.html

<!DOCTYPE HTML>
<html>
<body>
<script>
    var width = window.innerWidth;
    document.cookie = "scrwidth = " + width + "; path=/";
    document.writeln(width);</script>
</script>
</body>
</html>

Я полностью озадачен. Как это может работать? на сервере нет окон и ширины (где выполняется завиток)

Sergio Tulentsev 05.12.2018 17:23

@SergioTulentsev - getScreenSize.html вызывается с использованием CURL; который записывает cookie, который пытается быть прочитан сервером PHP, теория не на миллион миль.

CD001 05.12.2018 17:26

@ CD001: да, но cookie - это решение для резервного копирования. И я вижу document.writeln, который якобы дает правильный, но почему-то непригодный для использования результат.

Sergio Tulentsev 05.12.2018 17:27

Проблема, по сути, в том, что вам нужно будет использовать безголовый браузер (с поддержкой JS), а не CURL для запуска JS для генерации вывода.

CD001 05.12.2018 17:30

@ CD001 и даже с cookie нет окна. И никакого исполнения javascript. Это означает, что cookie устанавливается только как случайно, когда Дон повторяет $ret (если я правильно это читаю)

Sergio Tulentsev 05.12.2018 17:31

@SergioTulentsev - хех, думаю, вы писали свой комментарий, как я писал свой;)

CD001 05.12.2018 17:33

@ CD001: «вам нужно использовать безголовый браузер» - предположительно, OP хочет знать размер фактического окна браузера пользователя. В этом случае просто попросите кусок JS записывать этот файл cookie при каждой загрузке страницы. И хватай, когда нужно.

Sergio Tulentsev 05.12.2018 17:34

@SergioTulentsev ... OP хочет знать размер реального браузера пользователя ... хорошее замечание, хорошо сделано - слишком занят, глядя на техническую сторону, поэтому я упустил из виду очевидное: D

CD001 05.12.2018 17:35

@ CD001 Спасибо за вклад. Чтобы уточнить, curl, кажется, возвращает правильное значение, но $ ret на самом деле имеет длину 218 символов. Если посмотреть на исходное значение $ ret, это код из getScreenSize.html в кавычках. Я не понимаю, откуда берется значение, отображаемое echo $ ret.

DonB 05.12.2018 20:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
64
0

Другие вопросы по теме