Я бы бросил InvalidOperationException
. MSDN говорит, что «выдается, когда вызов метода недопустим для текущего состояния объекта».
Нет, не может. PHP работает на сервере, поэтому он не может определить настройки клиента, если вы не предпримете определенных действий на стороне клиента для передачи информации в сценарии PHP на сервере.
Обратите внимание, что некоторым из нас нравятся наши браузеры без развертки. Возможно, вам лучше попытаться определить размер браузера, а не разрешение экрана. Я предполагаю, что JS для того и другого будет очень похож, но я не знаю, что это так.
Кроме того, каково разрешение программы чтения с экрана для слепых?
Вам придется использовать PHP вместе с JavaScript, как в этом примере :
$url = $_SERVER['PHP_SELF'];
if( isset($HTTP_COOKIE_VARS["res"]) )
$res = $HTTP_COOKIE_VARS["res"];
else {
?>
<script language="javascript">
<!--
go();
function go()
{
var today = new Date();
var the_date = new Date("August 31, 2020");
var the_cookie_date = the_date.toGMTString();
var the_cookie = "res="+ screen.width +"x"+ screen.height;
var the_cookie = the_cookie + ";expires=" + the_cookie_date;
document.cookie=the_cookie
location = '<?echo "$url";?>';
}
//-->
</script>
<?php
}
//Let's "split" the resolution results into two variables
list($width, $height) = split('[x]', $res);
//Take the width and height minus 300
$tb_width = $width-300;
$tb_height = $height-300;
//Make the table
print("<table align=center border=1 width=" .$tb_width . " height=" . $tb_height . " >
<tr><td align=center>Your screen resolution is " . $width . " by " . $height . ".<br>
The width/height of this table is " . $tb_width . " by " . $tb_height . ".</td></tr>
</table>");
Размер монитора не может быть получен с помощью JS, у вас есть сделать опрос :)
Обратите внимание, что JS может проверять размер окна браузера, но этот размер включает пользовательские панели инструментов, полосы прокрутки и т. Д. Реальная рабочая область в браузере зависит от размера этих панелей инструментов.
Некоторым людям требуется размер браузера для перехода на мобильные устройства. В некоторых случаях это важная информация.
Использование WURFL и WALL может обойти это, поскольку большинство мобильных телефонов не поддерживают JS.