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

时间:2012-03-23 18:06:37

标签: php javascript

亲爱的所有专家我有一个问题,我将来自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"

1 个答案:

答案 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' );
     } );
} );

请参阅jQuery getjQuery post

的文档