无法比较document.write和php';中的字符串;s字符串


Can not compare string from document.write and php's string

尊敬的所有专家,我在将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 的文档