亲爱的所有专家我有一个问题,我将来自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"
答案 0 :(得分:1)
<script>
标记内的代码在网络浏览器中才会运行。 php生成一个文档以发送到Web浏览器。然后Web浏览器运行javascript。
无法弄清楚PHP代码中的屏幕宽度。但是,您可以使用javascript和css在页面加载后根据屏幕宽度修改页面布局。
如果您尝试根据屏幕宽度设置页面格式,那么我建议您使用Twitter Bootstrap。处理所有不同的屏幕尺寸可能会变得毛茸茸。有很多浏览器兼容性问题和其他并发症一开始并不明显。 Twitter上的人已经解决了这些问题并分享了这个框架,因此您无需重复工作。
如果您不想使用Bootstrap框架,请查看使用CSS Media Queries。
如果您因为其他原因需要将浏览器宽度发送到服务器,那么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' );
} );
} );
的文档