尊敬的所有专家,我在将document.write中的字符串与php的字符串进行比较时遇到了问题,当我使用var_dump(变量)时,我发现即使echo值相同,字符串也不相同,有人知道如何使其工作吗?
$resolution_width = "<script type='text/javascript'> document.write(window.screen.width); </script>";
$resolution_height = "<script type='text/javascript'>document.write('#'+window.screen.height+'#'); </script>";
$screen_width=$resolution_width;
$screen_height=str_replace("#","",$resolution_height);
echo var_dump($screen_width);
$str='1280';
echo "<BR>";
echo "<BR>".var_dump($str);
if($screen_width=='1440'){
$width=1440;
echo $width;
}
elseif($screen_width=='1360'){
$width=1360;
echo $width;
}
elseif($screen_width=='1280'){
$width=1280;
echo $width;
}
elseif($screen_width=='1152'){
$width=1152;
echo $width;
}
elseif($screen_width=='1024'){
$width=1024;
echo $width;
}
elseif($screen_width=='800'){
$width=800;
echo $width;
}
这是我尝试输出的结果,因为每次比较都会出错。我认为这个字符串是相同的,但可能是不同的转换。
我的结果:
string(78) "1280"
string(4) "1280"
<script>
标记中的代码只有在web浏览器中才能运行。php生成一个要发送到web浏览器的文档。然后web浏览器运行javascript。
没有办法计算php代码中的屏幕宽度。但是,您可以使用javascript和css在页面加载后根据屏幕宽度修改页面布局。
如果你试图根据屏幕宽度来格式化你的页面,那么我建议你使用Twitter Bootstrap。处理所有不同尺寸的屏幕可能会很麻烦。有很多浏览器兼容性问题和其他复杂问题起初并不明显。推特上的人已经解决了这些问题,并分享了这个框架,这样你就不必重复工作了。
如果您不想使用Bootstrap框架,那么可以考虑使用CSS媒体查询。
如果出于不同的原因需要将浏览器宽度发送到服务器,那么ajax将是一个很好的方法。您必须有两个php脚本。一个生成页面,另一个处理ajax请求。如果您使用的是jQuery,那么您可以这样写ajax请求:
$( function() {
$.get( 'script_that_will_proccess_ajax.php', { width: window.screen.width, height: window.screen.height } )
.success{ function {
alert( 'it worked' );
} );
} );
请参阅jQuery get和jQuery post 的文档