Мне нужно иметь возможность читать размер экрана во время выполнения 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>
@SergioTulentsev - getScreenSize.html вызывается с использованием CURL; который записывает cookie, который пытается быть прочитан сервером PHP, теория не на миллион миль.
@ CD001: да, но cookie - это решение для резервного копирования. И я вижу document.writeln, который якобы дает правильный, но почему-то непригодный для использования результат.
Проблема, по сути, в том, что вам нужно будет использовать безголовый браузер (с поддержкой JS), а не CURL для запуска JS для генерации вывода.
@ CD001 и даже с cookie нет окна. И никакого исполнения javascript. Это означает, что cookie устанавливается только как случайно, когда Дон повторяет $ret (если я правильно это читаю)
@SergioTulentsev - хех, думаю, вы писали свой комментарий, как я писал свой;)
@ CD001: «вам нужно использовать безголовый браузер» - предположительно, OP хочет знать размер фактического окна браузера пользователя. В этом случае просто попросите кусок JS записывать этот файл cookie при каждой загрузке страницы. И хватай, когда нужно.
@SergioTulentsev ... OP хочет знать размер реального браузера пользователя ... хорошее замечание, хорошо сделано - слишком занят, глядя на техническую сторону, поэтому я упустил из виду очевидное: D
@ CD001 Спасибо за вклад. Чтобы уточнить, curl, кажется, возвращает правильное значение, но $ ret на самом деле имеет длину 218 символов. Если посмотреть на исходное значение $ ret, это код из getScreenSize.html в кавычках. Я не понимаю, откуда берется значение, отображаемое echo $ ret.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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