将屏幕分辨率传给PHP,转换后为0
$row = '<script type="text/javascript">document.write(window.screen.width)</script>';
echo $row . "<br />";
echo intval($row);
第一个输出的是 1440 第二个输出的是 0.为什么? 这个竟然能输出1440?
你是怎么做到的 js 和 PHP 混合的。。。。。。 Hex 发表于 2014-2-13 19:59 static/image/common/back.gif
这个竟然能输出1440?
你是怎么做到的 js 和 PHP 混合的。。。。。。
这么写我也觉得很奇怪
不过测试的结果的确是这样的
输出1440是没有问题的
但是转成int后就变成0了
不知道为什么
其实我的目的是想在服务器端得到客户端屏幕的宽度
@Hex 大神有什么建议么?
我自己想到一个是用cookie。在客户端用javascript设置一个cookie,在服务器端用php读取。 dolphin836 发表于 2014-2-13 22:20 static/image/common/back.gif
这么写我也觉得很奇怪
不过测试的结果的确是这样的
哈哈,我知道为什么可以显示数字了。
原因就是:这个数字是由浏览器显示的,而不是由 PHP 输出的,PHP 只输出了 <script>...</script>这部分代码,然后浏览器就运行了这个代码,然后你就能看到数字了。
这也就解释了为什么 intval($row); 的结果是 0 了,因为实际上 $row 是一个字符串,也就是 <script>...</script> 所以转换成数字就是0。
你如果想让 PHP 接收到 JS 的数据,必须想办法把 JS 数据发送给 PHP,比如用 AJAX。
PHP 与 JS 不能混合使用。
使用cookie的方式有一个问题
就是第一次打开网站的时候无法得到cookie值 dolphin 发表于 2014-2-14 12:27 static/image/common/back.gif
使用cookie的方式有一个问题
就是第一次打开网站的时候无法得到cookie值
你说的没错。
所以你这个需求可能就有问题,屏幕分辨率的信息本身就不应该让 PHP 来处理,这应该是在浏览器端处理的事情。
Hex 发表于 2014-2-14 14:15 static/image/common/back.gif
你说的没错。
所以你这个需求可能就有问题,屏幕分辨率的信息本身就不应该让 PHP 来处理,这应该是在浏 ...
是的。是因为在自己对javascript不够熟悉,就想用PHP来处理。看了下别人的瀑布流原理,服务器端应该只负责提供数据,显示在前台通过javascript来控制才是对的。谢谢Hex大神。
dolphin 发表于 2014-2-18 10:14 static/image/common/back.gif
是的。是因为在自己对javascript不够熟悉,就想用PHP来处理。看了下别人的瀑布流原理,服务器端应该只负 ...
哈哈,原来是做瀑布流~高端~~
页:
[1]