PHP kullanarak ekran çözünürlüğünü Başlarken

10 Cevap

Benim web sitesini ziyaret bir kullanıcıların ekran ekran çözünürlüğünü bulmak gerekiyor?

10 Cevap

Sen saf PHP ile bunu yapamaz. JavaScript ile bunu yapmak gerekir. Bunun nasıl yazılı çeşitli makaleler bulunmaktadır.

Esasen, bir çerez ayarlayabilir ya da hatta bir PHP komut dosyası için bilgi göndermek için bazı Ajax yapabilirsiniz. Eğer jQuery kullanıyorsanız, bunu böyle bir şey yapabilirsiniz:

jquery:

$(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"));
}
?>

Tüm bu gerçekten basit ama bir yere almalısınız. Normalde ekran çözünürlüğü gerçekten olsa istediğini değildir. Aslında sayfası oluşturulur nerede beri gerçek tarayıcınızın görünüm liman boyutu daha ilginizi çekebilir ...

PHP ile hiçbir yolu yoktur. Tek yolu bazı JavaScript kullanmaktır.

PHP bir sunucu tarafı dilidir - sadece sunucu üzerinde çalıştırılan, ve sonuçta program çıkışı istemciye gönderilir. Gibi, hiçbir "müşteri ekranı" bilgi mevcut bulunuyor.

O dedi, müşteri kendi ekran çözünürlüğü JavaScript aracılığıyla ne olduğunu size söyleyebilirim olabilir. Bu, daha sonra http://example.net/index.php?size=AxB yönlendirir bulur bir ilk "atlama sayfa" ile AJAX, veya daha büyük olasılıkla yoluyla muhtemelen - Sen screen.height Screen.Width ve göndermek için küçük bir scriptlet'i yazın

Bir kullanıcı olarak konuşan rağmen, ben çok akıcı herhangi bir ekran çözünürlüğü işlemek için bir site tasarımı için tercih ediyorum. Ben çoğunlukla maksimize değil, farklı büyüklükteki pencerelerde göz atın.

Doğrudan PHP ile mümkün değil ama ...

Ben bir resim galerisi kullanmak için bir PHP oturum ekran çözünürlüğünü kaydetmek için bu basit kod yazmak.

<?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>';
}
?>

JavaScript kullanabilirsiniz (screen.width ve screen.height IIRC, ama yanlış olabilir, bir süredir JS yapmadım). PHP bunu yapamaz.

Bu öğretici bakın, YEK (duyarlı tasarım + Sunucu tarafı bileşenleri) deneyebilirsiniz:

http://www.netmagazine.com/tutorials/getting-started-ress

Benim için hile benim php içinde benim html içinde CSS yoktu kullanarak bulundu.

<?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>'; 

    ?>

This will output a smaller sized headline if the screen is 480px or less. So no need to pass any vars using JS or similar.

Tek yolu, (Eğer gerçekten sunucu tarafı var res gerekiyorsa) javascript php için ona göndermek için olsun, sonra javascript kullanmaktır. Onlar javascript kapatırsanız Ancak bu tamamen, onun yüzünde düz düşecek.

PHP değil kullanıcı host, yalnızca sunucu tarafında çalışır. Bu bilgi almak ve AJAX veya URL üzerinden göndermek için JavaScript kullanın (? X = 1024? Y = 640).

Ben PHP ile tamamen ekran boyutu algılayabilir sanmıyorum ama user-agent tespit edebilir ..

<?php
    if ( stristr($ua, "Mobile" )) {
        $DEVICE_TYPE="MOBILE";
    }

    if (isset($DEVICE_TYPE) and $DEVICE_TYPE=="MOBILE") {
        echo '<link rel="stylesheet" href="/css/mobile.css" />'
    }
?>

Burada daha ayrıntılı bir komut dosyası için bir link: PHP Mobile Detect