奇妙なことに、この 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 />
$screen_w を直接エコーすると、得られる正しい結果は 1366
です。
判定すると、1366 が 500 未満であることがわかります
If (int)$screen_w または intval($screen_w)
そのまま0
と表示されます。
説明は何ですか?
-----解決策--------------------------------文法上の誤りがなければ、それは「はい」を意味しますよね?
1. jsよりも先にphpが実行される! $screen_w = "3f1c4e4b6b16bbbd69b2ee476dc4f83adocument.write(screen.width);2cacc6d41bbb37262a98f745aa00fbf0"; がデータを取得できるとしても、それは PHP コードが実行された後でのみです。
2. $screen_w = "3f1c4e4b6b16bbbd69b2ee476dc4f83adocument.write(screen.width);2cacc6d41bbb37262a98f745aa00fbf0";
それは何ですか?それは単なる文字列の代入です
echo $screen_w;
を使用しても
これはブラウザに表示されるだけです
------解決策---------
var_dump 印刷すると、は 46 ビット文字列であり、正規表現を使用して数値を照合し、比較するだけです。
------解決策----------------------
まず、どれがクライアントコードであるかを理解する必要がありますこれはサーバー側のコードです。サーバー側のコードが最初に実行され、クライアント側のコードが最後に実行されます。