1

我正在使用以下代码来获取屏幕分辨率。

这适用于 WAMP 服务器,但是当我将它放在远程 Linux 服务器上时,$height返回0.

HTML/PHP

<head>
    ....

    <script language="javascript">
        var y=window.screen.availHeight;
        var x=window.screen.availWidth;
        window.location.href = "index.php?height=" + y + "&width=" + x;
        break;

</head>
<?php
    $height=$_GET['height'];
    $height=intval($height);
    echo($height);
?>
4

3 回答 3

1

PHP是服务器端。它从您的浏览器接收请求并呈现 HTML/CSS/Javascript 输出,然后将其发送回您的浏览器。因此,任何有关您的浏览器大小或屏幕大小的信息都需要作为某种请求发送到服务器,无论是在您第一次打开页面时,还是在您加载页面之后。在加载页面后向服务器发送请求称为 AJAX,这很可能是您必须这样做的方式。

http://w3schools.com/ajax/default.asp

于 2013-06-21T17:36:26.417 回答
1

你可能想解释你想用这个网页做什么,给出一个将高度传递给 php 的整体解释,因为这个页面根本不起作用。这是与此网页一起发生的执行流程。

  1. 用户在地址栏中输入 index.php。
  2. PHP Server 处理请求。
  3. $_GET 数组将不包含高度参数。
  4. $height 将不包含任何值。
  5. 当 $height 为空时调用 intval($height) 将返回 0。
  6. 页面将加载,将显示 0。
  7. JavaScript 被执行。
  8. URL 将使用高度和宽度参数构造。
  9. 浏览器会抛出错误:Uncaught SyntaxError: Illegal break statement
  10. 执行结束。
于 2013-06-21T18:01:32.990 回答
0

您可以通过 AJAX 执行此操作,但您需要将数据发送到不同的 PHP 文件并在那里进行处理(应该没问题,因为 PHP 是在服务器上处理的,而不是在您的计算机上处​​理的。

AJAX 的工作原理是这样的:

  • 在 javascript/jQuery 中,将一些值放入变量中
  • 创建一个 AJAX 代码块(我建议$.ajax()首先使用该结构)
  • 在 AJAX 代码块中,将 var-value 对发送到 PHP 文件
  • PHP 文件接收变量值,并对其进行处理
  • PHP 可以返回一些数据(通常是 HTML 字符串,如表格等)
  • 在 AJAX 代码块的 SUCCESS 函数中接收来自 PHP 的数据
  • 在 SUCCESS 函数中,您可以将接收到的代码注入 DOM

这里有几个例子(它实际上比乍看之下听起来/看起来要容易得多):

将下拉列表的值发送到 PHP 页面

另一个基本的 AJAX 示例

于 2013-06-21T17:39:49.240 回答