Kyl*_*ris 55
你不能用纯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');
});
Run Code Online (Sandbox Code Playgroud)
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"));
}
?>
Run Code Online (Sandbox Code Playgroud)
所有这些都是非常基本但它应该让你到处找.通常屏幕分辨率不是你真正想要的.您可能对实际浏览器的视图端口的大小更感兴趣,因为这实际上是页面呈现的位置...
小智 28
直接使用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>';
}
?>
Run Code Online (Sandbox Code Playgroud)
Ada*_*ght 19
PHP是服务器端语言 - 它仅在服务器上执行,并且生成的程序输出被发送到客户端.因此,没有"客户端屏幕"信息可用.
也就是说,您可以让客户通过JavaScript告诉您他们的屏幕分辨率.编写一个小小脚本向您发送screen.width和screen.height - 可能通过AJAX,或者更可能通过找到它的初始"跳转页面",然后重定向到http://example.net/index.php?size= AXB
虽然以用户身份发言,但我更倾向于设计一个网站以流畅地处理任何屏幕分辨率.我浏览不同大小的窗口,大多数都没有最大化.
小智 7
您可以像下面这样检查:
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) {
echo "mobile web browser!";
} else {
echo "web browser!";
}
Run Code Online (Sandbox Code Playgroud)
我发现在我的PHP内部使用CSS我的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>';
?>
Run Code Online (Sandbox Code Playgroud)
如果屏幕为480px或更小,这将输出较小尺寸的标题.所以不需要使用JS或类似的传递任何变量.
这是一个非常简单的过程。是的,您无法在PHP中获得宽度和高度。JQuery确实可以提供屏幕的宽度和高度。首先转到https://github.com/carhartl/jquery-cookie并获取jquery.cookie.js。这是使用php获取屏幕宽度和高度的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="js/jquery.cookie.js"></script>
<script type=text/javascript>
function setScreenHWCookie() {
$.cookie('sw',screen.width);
$.cookie('sh',screen.height);
return true;
}
setScreenHWCookie();
</script>
</head>
<body>
<h1>Using jquery.cookie.js to store screen height and width</h1>
<?php
if(isset($_COOKIE['sw'])) { echo "Screen width: ".$_COOKIE['sw']."<br/>";}
if(isset($_COOKIE['sh'])) { echo "Screen height: ".$_COOKIE['sh']."<br/>";}
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我有一个可以执行的测试:http : //rw-wrd.net/test.php
最简单的方法
<?php
//-- you can modified it like you want
echo $width = "<script>document.write(screen.width);</script>";
echo $height = "<script>document.write(screen.height);</script>";
?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
245501 次 |
最近记录: |