Мне нужно найти разрешение экрана экрана пользователя, который посещает мой сайт?Получение разрешения экрана с использованием PHP
ответ
Вы не можете сделать это с помощью чистого PHP. Вы должны сделать это с помощью JavaScript. Есть несколько статей, написанных о том, как это сделать.
По существу, вы можете установить файл cookie, или вы даже можете сделать Ajax для отправки информации в скрипт PHP. Если вы используете JQuery, вы можете сделать это что-то вроде этого:
JQuery:
$(function() {
$.post('some_script.php', { width: screen.width, height:screen.height }, function(json) {
if(json.outcome == 'success') {
// do something with the knowledge possibly?
} else {
alert('Unable to let PHP know what the screen resolution is!');
}
},'json');
});
PHP (some_script.php)
<?php
// For instance, you can do something like this:
if(isset($_POST['width']) && isset($_POST['height'])) {
$_SESSION['screen_width'] = $_POST['width'];
$_SESSION['screen_height'] = $_POST['height'];
echo json_encode(array('outcome'=>'success'));
} else {
echo json_encode(array('outcome'=>'error','error'=>"Couldn't save dimension info"));
}
?>
Все, что на самом деле основной, но это должен достать тебя куда-нибудь. Обычно разрешение экрана не то, что вы действительно хотите. Вы можете быть более заинтересованы в размере вьюпорте фактического браузера, так что на самом деле, где визуализируется страница ...
Кайл вы нашли способ получить размеры порта просмотра браузера? –
@KyleFarris ... я не так хорош на jquery и json .. как это будет код, это похоже на bellow '$ (function() { $ .post ('header.php', {width: 800px }, функция (JSON) { если (json.outcome == 'успех') { заголовок-800px.php // сделать что-то со знанием возможно ?} еще { header.php; } },» json '); }); ' –
Я не согласен с вами относительно разрешения представления, однако, ответ велик! Я предполагаю, что эта информация может использоваться для статистики и запрета. Я бы предпочел для этого агент пользователя и ip. Разрешение экрана тоже хорошо! – volter9
Используйте JavaScript (screen.width
и screen.height
IIRC, но я могу ошибаться, не сделал JS через некоторое время). PHP не может этого сделать.
Единственный способ использовать javascript, а затем получить javascript, чтобы опубликовать его на ваш php (если вам действительно нужна серверная сторона). Это, однако, полностью упадет на его лице, если они отключат javascript.
PHP работает только на стороне сервера, а не на хосте пользователя. Используйте JavaScript или jQuery для получения этой информации и отправки через AJAX или URL (? X = 1024 & y = 640).
Это будет? X = 1024 & y = 640 – EFraim
Я думаю, вам нужно использовать & y вместо? Y –
PHP - это серверный язык - он выполняется только на сервере, а полученный результат программы отправляется клиенту. Таким образом, информация о «клиентском экране» отсутствует.
Таким образом, вы можете сообщить клиенту, что их разрешение экрана через JavaScript. Напишите небольшой скриптлет, чтобы отправить вам screen.width и screen.height - возможно, через AJAX или, скорее всего, с начальной «страницей перехода», которая его найдет, затем перенаправляет на http://example.net/index.php?size=AxB
Говоря как пользователь, я бы вы предпочитаете, чтобы вы проектировали сайт, чтобы легко обрабатывать любое разрешение экрана. Я просматриваю окна разных размеров, в основном не максимизированные.
+1 для подробных объяснений, а не для максимизации окон вашего браузера. Мои окна браузера обычно имеют ширину около 800 пикселей; веб-страницы, которые меняют размеры на основе моего разрешения экрана, являются проклятием моего существования! –
Непосредственно с PHP не представляется возможным, но ...
Я пишу этот простой код сохранить разрешение экрана на сеансе PHP для использования в галерее изображений.
<?php
session_start();
if(isset($_SESSION['screen_width']) AND isset($_SESSION['screen_height'])){
echo 'User resolution: ' . $_SESSION['screen_width'] . 'x' . $_SESSION['screen_height'];
} else if(isset($_REQUEST['width']) AND isset($_REQUEST['height'])) {
$_SESSION['screen_width'] = $_REQUEST['width'];
$_SESSION['screen_height'] = $_REQUEST['height'];
header('Location: ' . $_SERVER['PHP_SELF']);
} else {
echo '<script type="text/javascript">window.location = "' . $_SERVER['PHP_SELF'] . '?width="+screen.width+"&height="+screen.height;</script>';
}
?>
Хорошее решение - реализовано и отлично работает. Я также вытащил http_user_agent (хотя он не всегда был заполнен/точным). Хотелось бы получить доступ к фактическому размеру порта просмотра браузера. (в отличие от экрана res). –
Мне нравится это решение. Простой - перенаправление на страницу с размером в URL-адресе. Для всех, кто это читает, вы можете получить размер видового экрана браузера - см. Http://stackoverflow.com/questions/8794338, в котором говорится (с помощью jquery) использовать функции .height() и .width(). – Ukuser32
Хорошее решение, но, пожалуйста, вы можете предоставить нам один, используя cookie вместо сеансов? –
Я нашел использование CSS внутри моего html внутри моего php, сделал трюк для меня.
<?php
echo '<h2 media="screen and (max-width: 480px)">';
echo 'My headline';
echo '</h2>';
echo '<h1 media="screen and (min-width: 481px)">';
echo 'My headline';
echo '</h1>';
?>
Это будет выводить заголовок меньшего размера, если экран имеет разрешение 480 пикселей или менее. Так что не нужно пропускать какие-либо вары с помощью JS или аналогичных.
Это не работает –
Вы можете попробовать ССГ (Адаптивный дизайн + стороне сервера компонентов), увидеть этот учебник:
Я не думаю, что вы можете определить размер экрана чисто с PHP, но вы можете обнаружить пользователя -agent ..
<?php
if (stristr($ua, "Mobile")) {
$DEVICE_TYPE="MOBILE";
}
if (isset($DEVICE_TYPE) and $DEVICE_TYPE=="MOBILE") {
echo '<link rel="stylesheet" href="/css/mobile.css" />'
}
?>
Вот ссылка на более подробный сценарий: PHP Mobile Detect
в PHP нет стан чтобы получить эту информацию. Однако это возможно, если вы используете стороннее решение. 51Degrees детектор устройство для PHP имеет свойства, которые вам нужны:
дает вам ширину и высоту экрана пользователя в пикселях. Чтобы использовать эти свойства, вам необходимо скачать детектор с sourceforge. Затем вам необходимо включить следующие 2 строки в файле/файлов, где это необходимо для определения высоты и ширину экрана:
<?php
require_once 'path/to/core/51Degrees.php';
require_once 'path/to/core/51Degrees_usage.php';
?>
Где путь/к/ядро путь к директории «ядро», который вы загрузили с сайта SourceForge. И, наконец, использовать свойства:
<?php
echo $_51d['ScreenPixelsHeight']; //Output screen height.
echo $_51d['ScreenPixelsWidth']; //Output screen width.
?>
Имейте в виду, эти переменные могут содержать «Unknown» значение несколько раз, когда устройство не может быть идентифицирован.
JS:
$.ajax({
url: "ajax.php",
type: "POST",
data: "width=" + $("body").width(),
success: function(msg) {
return true;
}
});
ajax.php
if(!empty($_POST['width']))
$width = (int)$_POST['width'];
Это можно легко сделать с помощью печенья. Этот метод позволяет странице проверять сохраненные значения cookie на высоту и ширину экрана (или значения высоты и ширины порта порта браузера), и если они отличаются друг от друга, он сбросит файл cookie и перезагрузит страницу. Код должен учитывать пользовательские настройки. Если упорные файлы cookie отключены, используйте файл cookie сеанса. Если это не сработает, вам нужно установить настройку по умолчанию.
- Javascript: Проверьте, если высоту & ширина печенье набора
- Javascript: Если установлено, проверьте screen.height & Screen.Width (или что вы хотите) соответствует текущему значению куков
- Javascript: Если cookie не установлен или он не соответствует текущему значению, то: a. Javascript: создать постоянный или сеансовый файл cookie с именем (например,) 'shw' для значения текущего экрана. Hight & screen.width.
b. Javascript: перенаправление на SELF с помощью window.location.reload(). Когда он перезагрузится, он пропустит шаг 3. - PHP: $ _COOKIE ['shw'] содержит значения.
- Продолжить с PHP
Э.Г., Я использую некоторые общие функции cookie, найденные в Интернете. Убедитесь, что setCookie вернет правильные значения. Я поместил этот код сразу после заголовка. Очевидно, что функция должна быть в исходном файле.
<head>
<script src="/include/cookielib.js"></script>
<script type=text/javascript>
function setScreenHWCookie() {
// Function to set persistant (default) or session cookie with screen ht & width
// Returns true if cookie matches screen ht & width or if valid cookie created
// Returns false if cannot create a cookies.
var ok = getCookie("shw");
var shw_value = screen.height+"px:"+screen.width+"px";
if (! ok || ok != shw_value) {
var expires = 7 // days
var ok = setCookie("shw", shw_value, expires)
if (ok == "") {
// not possible to set persistent cookie
expires = 0
ok = setCookie("shw", shw_value, expires)
if (ok == "") return false // not possible to set session cookie
}
window.location.reload();
}
return true;
}
setScreenHWCookie();
</script>
....
<?php
if(isset($_COOKIE["shw"])) {
$hw_values = $_COOKIE["shw"];
}
<script type="text/javascript">
if(screen.width <= 699){
<?php $screen = 'mobile';?>
}else{
<?php $screen = 'default';?>
}
</script>
<?php echo $screen; ?>
Вы не можете установить переменную php в JavaScript. – japetko
Чтобы объяснить это гениальное: первый php выполняется на стороне сервера, т.е. перед тем как дойти до браузера, в то время как javascript выполняется после достижения браузера. – reverbnation
решения: сделать масштабируемый веб-дизайн ... (наш я должен сказать, правильный веб-дизайн) верстка должна быть сделана на сторону клиента, и я сделал желаю информация будет передана на сервер, но информация является по-прежнему полезно (сколько объектов в каждой строке относится к сделке), но все же веб-дизайн должен быть текучим, поэтому каждый элемент строки не следует помещать в таблицы, если только его фактическая таблица (и данные не будут масштабироваться до отдельных ячеек), если вы используете div вы можете складывать каждый элемент рядом друг с другом, и ваше окно должно «ломать» строку в нужном месте. (нужно просто css)
- 1. Получение разрешения экрана
- 2. Получение разрешения экрана
- 3. Получение неправильного разрешения экрана от класса экрана
- 4. Получение неправильного разрешения экрана для IPAD Air
- 5. QT получение разрешения экрана без дополнительного монитора
- 6. Получение значения ширины экрана в переменной PHP с использованием Ajax
- 7. Получение уведомлений об изменениях разрешения экрана на Mac
- 8. ... Изменение разрешения экрана Java
- 9. Захват разрешения экрана для экрана/браузера
- 10. Получение черного экрана с использованием метода захвата экрана в C#
- 11. Войти форму с использованием PHP и разрешения
- 12. Увеличение разрешения экрана в java
- 13. Ошибка разрешения экрана с использованием PrimaryMonitorSIze или Caps
- 14. Изменение разрешения экрана удаленного сеанса с использованием Java RunnableJar
- 15. Обнаружение разрешения экрана
- 16. Обнаружение разрешения экрана
- 17. Изменение разрешения экрана
- 18. Обработка разрешения экрана
- 19. разрешения экрана платформы Android
- 20. Обнаружение разрешения экрана клиента
- 21. Увеличение разрешения экрана Java
- 22. изменения разрешения экрана программно
- 23. Получение разрешения экрана и положение/смещения от OSX
- 24. Разрешения при использовании экрана GNU
- 25. Получение разрешения экрана 545 X 320 в Moto Xoom
- 26. метод скрипинга экрана с использованием php
- 27. Получение «Разрешения отказа» в классическом ASP с использованием CopyFile
- 28. Получение макс. разрешение экрана с группой By
- 29. Почему коэффициент разрешения экрана не совпадает с соотношением размеров экрана?
- 30. Изменение разрешения формы на основе разрешения экрана (без изменения разрешения монитора и использования опции максимального экрана)
Это делается с помощью JavaScript, а не PHP. PHP работает только на стороне сервера. Хотя, обнюхивая разрешение экрана пользователя, помните, что не все пользователи просматривают весь экран! – sjstrutt
CSS-способ отображения дизайна на размер: http://stackoverflow.com/questions/19186243/javascript-to-get-screen-width-in-php-variable –
Используйте JavaScript для получения этой информации и отправки через AJAX – Elyor