web-dev-qa-db-ja.com

PHPウィンドウ幅に応じた条件(メディアクエリ?)

レスポンシブウェブサイトがあり、ウィンドウ幅(またはメディアクエリ)に応じて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.';
}

ご協力いただきありがとうございます!

4
user1706680

これをチェックして

Goolgle Mobile Detect

http://www.php.net/get_browser を使用して、isMobileDeviceフィールドを確認してください。もちろん、browscap.iniへのパスがphp.iniで設定されている場合にのみ役立つ可能性があります。そうでない場合は、 https://github.com/garetjax/phpbrowscap のようなphpクラスを使用できます。

5
Shakti Patel

いいえ、phpではできません。 phpは厳密にサーバー側です

代わりにユーザーjavascript。以下は、JavaScriptを使用してデバイスの解像度を取得するための私のコードです

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

秘訣は次のとおりです。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);
?>
0
robix

これはデバイス検出用だと思います。 PHPのみを使用してウィンドウ幅を検出できるかどうかはわかりません。検出できる場合は、この情報がHTTPヘッダーに表示されます。オープンソースを使用することをお勧めしますPHPこのために構築されたクラス: http://mobiledetect.net/

0
Jonathon

ビューでは、次のように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>
0
catalinp