Abrufen der Bildschirmauflösung mit PHP

Lesezeit: 9 Minuten

Abrufen der Bildschirmauflosung mit PHP
Elitmiar

Ich muss die Bildschirmauflösung eines Benutzerbildschirms finden, der meine Website besucht?

  • Dies geschieht über JavaScript, nicht über PHP. PHP wird nur serverseitig ausgeführt. Denken Sie jedoch beim Ausspionieren der Bildschirmauflösung eines Benutzers daran, dass nicht alle Benutzer im Vollbildmodus surfen!

    – sjstrutt

    1. Oktober 2009 um 15:03 Uhr

  • Eine CSS-Methode zum Rendern des Designs in Abhängigkeit von der Größe: stackoverflow.com/questions/19186243/…

    – Déjà-vu

    31. Juli 2014 um 10:06 Uhr

  • Verwenden Sie JavaScript, um diese Informationen abzurufen und per AJAX zu senden

    – Elyor

    13. August 2015 um 11:29 Uhr

  • Ähnliche Frage mit alternative Möglichkeiten: Kann PHP die Größe/Auflösung des Client-Browser-Monitors erkennen?

    – Ashleedawg

    1. Mai 2019 um 6:44 Uhr

  • Dies sollte wirklich über PHP möglich sein (ich weiß, dass es derzeit nicht möglich ist). Zu sagen, dass es nicht sein sollte, weil PHP serverseitig ist, ignoriert alle anderen Client-Informationen, die wir über $_REQUEST erhalten, wie HTTP_USER_AGENT. Warum können wir kein weiteres Feld mit der Größe des Browser-Anzeigeports haben?

    – Sophivorus

    11. Juni 2020 um 21:55 Uhr


1646906049 829 Abrufen der Bildschirmauflosung mit PHP
Kyle Farris

Mit reinem PHP geht das nicht. Sie müssen es mit JavaScript tun. Es gibt mehrere Artikel darüber, wie man das macht.

Im Wesentlichen können Sie ein Cookie setzen oder sogar Ajax verwenden, um die Informationen an ein PHP-Skript zu senden. Wenn Sie jQuery verwenden, können Sie es etwa so machen:

Abfrage:

$(function() {
    $.post('some_script.php', { width: screen.width, height:screen.height }, function(json) {
        if(json.outcome == 'success') {
            // do something with the knowledge possibly?
        } else {
            alert('Unable to let PHP know what the screen resolution is!');
        }
    },'json');
});

PHP (some_script.php)

<?php
// For instance, you can do something like this:
if(isset($_POST['width']) && isset($_POST['height'])) {
    $_SESSION['screen_width'] = $_POST['width'];
    $_SESSION['screen_height'] = $_POST['height'];
    echo json_encode(array('outcome'=>'success'));
} else {
    echo json_encode(array('outcome'=>'error','error'=>"Couldn't save dimension info"));
}
?>

All das ist wirklich einfach, aber es sollte Sie irgendwohin bringen. Normalerweise ist die Bildschirmauflösung jedoch nicht das, was Sie wirklich wollen. Sie interessieren sich vielleicht mehr für die Größe des tatsächlichen Anzeigeports des Browsers, da die Seite tatsächlich dort gerendert wird …

  • Kyle, hast du einen Weg gefunden, die Abmessungen des Browser-Anzeigeports zu ermitteln?

    – ein Codierer

    18. September 2012 um 17:33 Uhr


  • @KyleFarris … ich bin nicht so gut in jquery und json … wie es Code sein wird, ist das wie unten $(function() { $.post('header.php', { width: 800px }, function(json) { if(json.outcome == 'success') { header-800px.php // do something with the knowledge possibly? } else { header.php; } },'json'); });

    – Accor LTD

    26. November 2013 um 3:32 Uhr


  • Ich stimme Ihnen in Bezug auf die Auflösung der Ansicht nicht zu, aber die Antwort ist großartig! Ich denke, diese Informationen können für Statistiken und Sperren verwendet werden. Ich würde dafür eher User Agent und IP bevorzugen. Bildschirmauflösung ist auch gut!

    – Volter9

    8. Mai 2014 um 2:58 Uhr


  • Welche Bedeutung hat “some_script.php”? Muss das der Name der Seite sein, die das Skript lädt? Kann es für alle Seiten generisch sein?

    – WilliamK

    16. Januar 2018 um 21:24 Uhr

  • EIN Arbeiten Antwort wäre noch besser. Womit soll ich was machen??

    – Ashleedawg

    1. Mai 2019 um 0:20 Uhr

Abrufen der Bildschirmauflosung mit PHP
Carlos Ricardo Schmitz

Direkt mit PHP geht das nicht aber…

Ich schreibe diesen einfachen Code, um die Bildschirmauflösung in einer PHP-Sitzung zu speichern und in einer Bildergalerie zu verwenden.

<?php
session_start();
if(isset($_SESSION['screen_width']) AND isset($_SESSION['screen_height'])){
    echo 'User resolution: ' . $_SESSION['screen_width'] . 'x' . $_SESSION['screen_height'];
} else if(isset($_REQUEST['width']) AND isset($_REQUEST['height'])) {
    $_SESSION['screen_width'] = $_REQUEST['width'];
    $_SESSION['screen_height'] = $_REQUEST['height'];
    header('Location: ' . $_SERVER['PHP_SELF']);
} else {
    echo '<script type="text/javascript">window.location = "' . $_SERVER['PHP_SELF'] . '?width="+screen.width+"&height="+screen.height;</script>';
}
?>

Neue Lösung Wenn Sie einen anderen Parameter in Get Method senden müssen (von Guddu Modok)

<?php
session_start();
if(isset($_SESSION['screen_width']) AND isset($_SESSION['screen_height'])){
    echo 'User resolution: ' . $_SESSION['screen_width'] . 'x' . $_SESSION['screen_height'];
    print_r($_GET);
} else if(isset($_GET['width']) AND isset($_GET['height'])) {
    $_SESSION['screen_width'] = $_GET['width'];
    $_SESSION['screen_height'] = $_GET['height'];
$x=$_SERVER["REQUEST_URI"];    
    $parsed = parse_url($x);
$query = $parsed['query'];
parse_str($query, $params);
unset($params['width']);
unset($params['height']);
$string = http_build_query($params);
$domain=$_SERVER['PHP_SELF']."?".$string;
        header('Location: ' . $domain);
} else {
$x=$_SERVER["REQUEST_URI"];    
    $parsed = parse_url($x);
$query = $parsed['query'];
parse_str($query, $params);
unset($params['width']);
unset($params['height']);
$string = http_build_query($params);
$domain=$_SERVER['PHP_SELF']."?".$string;
    echo '<script type="text/javascript">window.location = "' . $domain . '&width="+screen.width+"&height="+screen.height;</script>';
}
?>

  • Gute Lösung – umgesetzt und funktioniert super. Ich habe auch http_user_agent gezogen (obwohl es nicht immer gefüllt/genau ist). Ich wünschte, es gäbe eine Möglichkeit, die tatsächliche Größe des Browser-Anzeigeports zu ermitteln. (im Gegensatz zur Bildschirmauflösung).

    – ein Codierer

    18. September 2012 um 17:31 Uhr

  • Ich mag diese Lösung. Einfach – Weiterleitung auf eine Seite mit Größe in der URL. Für alle, die dies lesen – Sie können die Größe des Browser-Ansichtsfensters abrufen – siehe stackoverflow.com/questions/8794338, in dem steht (mit jquery), dass Sie die Funktionen .height() und .width() verwenden.

    – Ukuser32

    24. Februar 2016 um 17:02 Uhr

  • Gute Lösung, aber können Sie uns bitte eine mit Cookies anstelle von Sitzungen zur Verfügung stellen?

    – Johannes Max

    4. August 2016 um 16:53 Uhr

  • Was ist der einfachste Weg, dies unsichtbar für den Benutzer zu tun? (z. B. keine URL-Parameter usw.)

    – Ashleedawg

    1. Mai 2019 um 0:21 Uhr

  • Das ist eigentlich ziemlich genial!

    – Weihnachtsmann

    25. Mai 2019 um 20:03 Uhr

PHP ist eine serverseitige Sprache – sie wird nur auf dem Server ausgeführt und die resultierende Programmausgabe wird an den Client gesendet. Daher sind keine “Client-Bildschirm”-Informationen verfügbar.

Allerdings können Sie sich vom Client über JavaScript die Bildschirmauflösung mitteilen lassen. Schreiben Sie ein kleines Skriptlet, um Ihnen screen.width und screen.height zu senden – möglicherweise über AJAX oder wahrscheinlicher mit einer anfänglichen “Sprungseite”, die es findet und dann weiterleitet http://example.net/index.php?size=AxB

Obwohl ich als Benutzer spreche, würde ich es vorziehen, wenn Sie eine Website entwerfen, die jede Bildschirmauflösung flüssig handhabt. Ich blättere in unterschiedlich großen Fenstern, meist nicht maximiert.

  • +1 für die detaillierten Erklärungen und nicht die Maximierung Ihrer Browserfenster. Meine Browserfenster sind normalerweise etwa 800 Pixel breit; Webseiten, die sich basierend auf meiner Bildschirmauflösung selbst skalieren, sind der Fluch meiner Existenz!

    – Alex Barett

    1. Oktober 2009 um 15:06 Uhr

Ich habe festgestellt, dass die Verwendung von CSS in meinem HTML in meinem PHP den Trick für mich getan hat.

<?php             
    echo '<h2 media="screen and (max-width: 480px)">'; 
    echo 'My headline';
    echo '</h2>'; 

    echo '<h1 media="screen and (min-width: 481px)">'; 
    echo 'My headline';
    echo '</h1>'; 

    ?>

Dadurch wird eine kleinere Überschrift ausgegeben, wenn der Bildschirm 480 Pixel oder weniger groß ist. Es müssen also keine Variablen mit JS oder ähnlichem übergeben werden.

Einfachster Weg

<?php 
//-- you can modified it like you want

echo $width = "<script>document.write(screen.width);</script>";
echo $height = "<script>document.write(screen.height);</script>";

?>

  • Ich frage mich, warum SO-Benutzer sehr gute Antworten wie diese ablehnen. Vielen Dank, Ihre Antwort bietet direkten Zugriff über PHP auf die Breite und Höhe des Bildschirms und ich habe es sogar auf alten Mobilgeräten getestet. Danke

    – Johannes Max

    2. Oktober 2020 um 18:17 Uhr

  • Töricht. Sie befinden sich bereits im DOM. Mit diesem Code kommst du nirgendwo hin. Es sei denn, Sie haben herausgefunden, wie Sie serverseitigen Code auf dem Computer eines Clients verwenden. Wenn Sie wissen, wie das geht, dann korrigiere ich mich – Sie sind unglaublich! 🙂

    – Ricalsin

    25. Februar 2021 um 18:56 Uhr

  • Zuerst habe ich hochgestimmt, aber es funktioniert nicht, es zeigt (echos) nur die Javascript-Breite und -Höhe, aber Sie können keine PHP-Variable festlegen, die beispielsweise für Berechnungen verwendet werden soll, ohne die Seite zu übermitteln. Fügen Sie dies hinzu, nachdem der Code angezeigt wurde, und Sie werden sehen. echo substr($width,0,8).” alert(‘hallo’);”.substr($height,-9);

    – Lisandro

    20. August 2021 um 22:56 Uhr

Abrufen der Bildschirmauflosung mit PHP
Reich R.

Dies ist ein sehr einfacher Vorgang. Ja, Sie können die Breite und Höhe nicht in PHP erhalten. Es ist wahr, dass JQuery die Breite und Höhe des Bildschirms bereitstellen kann. Gehen Sie zuerst zu https://github.com/carhartl/jquery-cookie und holen Sie sich jquery.cookie.js. Hier ist ein Beispiel mit PHP, um die Bildschirmbreite und -höhe zu erhalten:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
        <script src="js/jquery.cookie.js"></script>
        <script type=text/javascript>
            function setScreenHWCookie() {
                $.cookie('sw',screen.width);
                $.cookie('sh',screen.height);
                return true;
            }
            setScreenHWCookie();
        </script>
    </head>
    <body>
        <h1>Using jquery.cookie.js to store screen height and width</h1>
    <?php
         if(isset($_COOKIE['sw'])) { echo "Screen width: ".$_COOKIE['sw']."<br/>";}
         if(isset($_COOKIE['sh'])) { echo "Screen height: ".$_COOKIE['sh']."<br/>";}
    ?>
    </body>
    </html>

Ich habe einen Test, den Sie ausführen können: http://rw-wrd.net/test.php

  • Ich frage mich, warum SO-Benutzer sehr gute Antworten wie diese ablehnen. Vielen Dank, Ihre Antwort bietet direkten Zugriff über PHP auf die Breite und Höhe des Bildschirms und ich habe es sogar auf alten Mobilgeräten getestet. Danke

    – Johannes Max

    2. Oktober 2020 um 18:17 Uhr

  • Töricht. Sie befinden sich bereits im DOM. Mit diesem Code kommst du nirgendwo hin. Es sei denn, Sie haben herausgefunden, wie Sie serverseitigen Code auf dem Computer eines Clients verwenden. Wenn Sie wissen, wie das geht, dann korrigiere ich mich – Sie sind unglaublich! 🙂

    – Ricalsin

    25. Februar 2021 um 18:56 Uhr

  • Zuerst habe ich hochgestimmt, aber es funktioniert nicht, es zeigt (echos) nur die Javascript-Breite und -Höhe, aber Sie können keine PHP-Variable festlegen, die beispielsweise für Berechnungen verwendet werden soll, ohne die Seite zu übermitteln. Fügen Sie dies hinzu, nachdem der Code angezeigt wurde, und Sie werden sehen. echo substr($width,0,8).” alert(‘hallo’);”.substr($height,-9);

    – Lisandro

    20. August 2021 um 22:56 Uhr

1646906050 690 Abrufen der Bildschirmauflosung mit PHP
Katze plus plus

Verwenden Sie JavaScript (screen.width und screen.height IIRC, aber ich kann mich irren, habe JS schon eine Weile nicht mehr gemacht). PHP kann das nicht.

987430cookie-checkAbrufen der Bildschirmauflösung mit PHP

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy