Я тоже искал это, но не нашел ни одного из этих ответов, которые действительно ответили на вопрос! Действительно, у PHP нет возможности узнать разрешение экрана, так как он работает на стороне сервера. Поскольку эта информация не передается в переменных среды HTTP, нам нужен другой маршрут. Javascript является одной из альтернатив.
Примером ниже является страница PHP, которая проверяет переменную resolution
, передаваемую в HTTP-запросе. Если он не находит эту переменную resolution
, он создает небольшой кусочек JavaScript на странице, который передает эту переменную, а также высоту и ширину в перенаправлении обратно к себе. Конечно, когда страница снова загружается после перенаправления, все переменные будут установлены, и PHP будет знать разрешение.
<?php
if(!isset($_GET['resolution'])) {
echo "<script language=\"JavaScript\">
<!--
document.location=\"$PHP_SELF?resolution=1&width=\"+screen.width+\"&height=\"+screen.height;
//-->
</script>";
} else {
// Code to be displayed if resolution is detected
if(isset($_GET['width']) && isset($_GET['height'])) {
echo "Width: " . $_GET['width'] . " and Height: " . $_GET['height'] . "<br />";
} else {
echo "Resolution not detected.";
}
}
?>
В конце концов я нашел это довольно неудовлетворительное решение. Это работает, но это уродливо, добавляя в URL кавалеры и требуя перенаправления. Тем не менее, это может вдохновить кого-то опубликовать лучший ответ. К вашему сведению, кредит, причитающийся кредит, этот ответ был вдохновлен этот пост .