【发布时间】:2015-11-02 16:15:27
【问题描述】:
所以我目前正在编写一段行为相当愚蠢的代码。
function screenWidth($buffer)
{
global $widthTest;
$widthTest = $buffer;
}
ob_start("screenWidth");
$screenWidth = '<script type="text/javascript">document.write(parseInt(document.documentElement.clientWidth));</script>';
echo $screenWidth;
$width = ob_get_contents();
ob_end_clean();
echo $width;
echo $widthTest;
这会产生一个字符串,它给了我屏幕宽度,没有 javascript,这太棒了。但是,由于某种原因,我无法将其转换为整数。
我错过了什么吗?我已经以纯文本形式运行它,它肯定会返回数字而不仅仅是 javascript。它被存储为一个字符串,如果我尝试使用 intval 或 (int)$width;然后它每次返回 0。
我知道以这种方式做事的缺陷,但不幸的是,这是遗留代码,出于各种原因必须以这种方式完成。
有人有什么想法吗?
【问题讨论】:
-
我真的不明白这是怎么回事? PHP 代码首先在服务器上执行。然后它将结果发送到执行 javascript 的用户浏览器... PHP 无法从该 javascript 获得任何值作为回报。
-
这已经在这个特定的网站上有一段时间了(不是我最初写的),我被要求更新它。我想知道是不是这样。
-
我猜它从来没有奏效过。有人对那个发出了嘘声。
标签: javascript php string integer