【问题标题】:Get browser width using php使用php获取浏览器宽度
【发布时间】:2014-04-23 08:45:01
【问题描述】:

有没有办法通过php获取屏幕大小?我在 google 上看过,发现了一种通过 javascript 实现的方法,如下所示:

PHP:

 <?php
   $width = "<script>sw=screen.width;</script>"; 
   $height = "<script>sh=screen.height;</script>"; 
   echo "Width&#58; ".$width." Height&#58; ".$height;
 ?>

但这不会在 $width 或 $height 中存储任何内容。这是做这件事的好方法吗?还是有其他方法?

【问题讨论】:

  • Ofc 不是,因为 PHP 在 JS 之前被评估。您正在存储一个将作为脚本评估的字符串,但变量的值不受影响,因为 PHP 甚至不知道存在脚本。我真的没有理由在 PHP 中存储浏览器窗口的宽度,但你需要 AJAX。
  • PHP 是服务器端和 JS 客户端。你不能在 PHP 的“内部”使用 JS。
  • Get window size with php 的可能重复项
  • 最重要的问题是你为什么要这样做?
  • 实际上我正在做一个由其他人完成的正在运行的项目。在那个项目中,我需要 php.ini 中的浏览器宽度。但是从谷歌我知道这在 php 中是不可能的。这就是为什么我发布这个问题@Wesley Murch

标签: javascript php


【解决方案1】:

你不能这样做,这是一种方法:

<?php
session_start();
if(isset($_POST['width'])){
   $_SESSION['screen_size'] = array();
   $_SESSION['screen_size']['width'] = intval($_POST['width']);
   $_SESSION['screen_size']['height'] = intval($_POST['height']);
}


if(!isset($_SESSION['screen_size'])){
?>
<html>
<head>
<script>
function getSize(){
document.getElementById('inp_width').value=screen.width;
document.getElementById('inp_height').value=screen.height;
document.getElementById('form_size').submit();
}
</script>
</head>
<body onload='getSize()'>
<form method='post' id='form_size'>
<input type='hidden' name='width' id='inp_width'/>
<input type='hidden' name='height' id='inp_height'/>
</form>
</body>
</html>


<?php
}else{
    var_dump($_SESSION['screen_size']);
}

这是一种简单的方法,页面会在第一次重新加载。

您可能想要使用 AJAX。

另外,如果有人拒绝会话 cookie,这将永远循环,最好测试浏览器是否接受 cookie。

【讨论】:

  • 如果你喜欢这个答案,请验证它,它会奖励我的帮助:)
  • 我想要浏览器窗口中可用的大小,发现上面的代码给了我,如果我只是改变 value=screen.width;到值=window.InnerWidth;和值=screen.height; to value=window.innerHeight;
【解决方案2】:

您不能仅使用 php 来获取浏览器宽度。 PHP 是服务器代码。

尝试查看this。您可以使用 ajax 在您的 php 代码中发送(发布)浏览器宽度。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2012-06-15
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2017-03-25
    • 2011-01-21
    相关资源
    最近更新 更多