诡谲,这句PHP看起来都对,可是无法得到正确结果

WBOY
リリース: 2016-06-13 11:21:20
オリジナル
875 人が閲覧しました

诡异,这句PHP看起来都对,可是无法得到正确结果。

<br /><br />$screen_w = "<script>document.write(screen.width);</script>";<br /><br />if($screen_w < 500){<br />echo '宽度小于500';<br />}<br />else{<br />echo '大于等于500';<br />}<br /><br />
ログイン後にコピー


直接 echo $screen_w; 可以得到正确结果是 1366

if判断的时候  结果却是  1366小于500

如果 (int)$screen_w   或者  intval($screen_w)

直接显示为0了

何解?


------解决方案--------------------
没有语法错误,就表示是对的吗?

1、php 先于 js 执行!即便是 $screen_w = "<script>document.write(screen.width);</script>"; 能得到数据,那也是 php 代码执行完了以后
2、$screen_w = "<script>document.write(screen.width);</script>";
是什么呢?只不过是个字符串赋值
即便有 echo $screen_w;
那也只是在浏览器中显示而已
------解决方案--------------------
var_dump打印出来,是46位的字符串,JS代码也算在里面了,用正则把数字匹配出来再比较就可以了。
------解决方案--------------------
首先要明白哪些是客户端的代码,哪些是服务端的代码,二服务端的代码是优先执行的,客户端的是后执行的
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート