PHP条件取决于窗口宽度(媒体查询?)

时间:2013-09-19 08:45:34

标签: php media-queries conditional-statements

我有一个响应式网站,我需要一些PHP条件,具体取决于窗口宽度(或媒体查询)。

示例:

if ($window_width > 1400px) {
    echo 'Your window is wider than 1400px';
}

elseif ($window_width > 1000px) AND ($window_width < 1399px) {
    echo 'Your window is between 1000px and 1399px';
}

else {
    echo 'Your window is narrower than 1000px.';
}

感谢您的帮助!

5 个答案:

答案 0 :(得分:5)

检查这个

Goolgle Mobile Detect

尝试使用http://www.php.net/get_browser并检查isMobileDevice字段。当然,如果在php.ini中设置browscap.ini的路径,它可能只有帮助。如果没有,您可以使用像https://github.com/garetjax/phpbrowscap

这样的php类

答案 1 :(得分:0)

我假设这是用于设备检测。我不确定你是否可以单独使用PHP检测窗口宽度。如果可以,则此信息将显示在HTTP标头中。我建议使用为此构建的开源PHP类:http://mobiledetect.net/

答案 2 :(得分:0)

不,你不能用PHP做到这一点。 php严格来说是服务器端

用户javascript代替。 下面是我使用javascript获取设备分辨率的代码

<script>
     screenWidth = window.screen.width,
     screenHeight = window.screen.height;
    console.log(screenWidth);
    console.log(screenHeight);
</script> 

答案 3 :(得分:0)

这是诀窍: 使用js评估窗口宽度,然后将PHP加载到框架中并将宽度放在参数中。然后,您的PHP脚本可以读取该参数并根据该值执行不同的条件。

这是js部分:

<script type="text/javascript">
    var width = window.innerWidth;
    document.write('<iframe src="content.php?w='+width+'"></iframe>');
</script>

在content.php文件中,只需读取width参数并对其执行操作:

<?php
    //Get width of browser window
    $width = $_GET['w'];
    echo ('width: '.$width);
?>

答案 4 :(得分:0)

在视图中,您可以显示/隐藏div,如下所示:

<style>
    #web {display: block;}
    #mobile {display: none;}

    @media screen and (max-width: 320px) {
        #web {display: none;}
        #mobile {display: block;}
    }
</style>

<div id="mobile">
    <?php echo "is mobile"; //include("page_mobile.phtml"); ?>
</div>

<div id="web">
    <?php echo "is web"; //include("page_web.phtml"); ?>
</div>