2014-04-23 128 views
0

有沒有辦法通過php獲取屏幕大小?我曾在谷歌一看,發現通過JavaScript做如下的方式:使用php獲取瀏覽器寬度

PHP:

<?php 
    $width = "<script>sw=screen.width;</script>"; 
    $height = "<script>sh=screen.height;</script>"; 
    echo "Width&#58; ".$width." Height&#58; ".$height; 
?> 

但這並不存儲在$寬度和$高度事情。這是做這件事的好方法嗎?還是有另一種方式?

+0

Ofc沒有,因爲PHP在JS之前得到評估。您正在存儲將被評估爲腳本的字符串,但該變量的值不受影響,因爲PHP甚至不知道腳本。我真的沒有看到在PHP中存儲瀏覽器窗口寬度的理由,但是您需要使用AJAX。 –

+0

PHP是服務器端和JS客戶端。你不能在PHP中使用JS「內部」。 – Tzar

+1

可能重複[獲取窗口大小與PHP](http://stackoverflow.com/questions/19291236/get-window-size-with-php) – avetisk

回答

0

你不能這樣做,這樣一來,這裏是一個辦法做到這一點:

<?php 
session_start(); 
if(isset($_POST['width'])){ 
    $_SESSION['screen_size'] = array(); 
    $_SESSION['screen_size']['width'] = intval($_POST['width']); 
    $_SESSION['screen_size']['height'] = intval($_POST['height']); 
} 


if(!isset($_SESSION['screen_size'])){ 
?> 
<html> 
<head> 
<script> 
function getSize(){ 
document.getElementById('inp_width').value=screen.width; 
document.getElementById('inp_height').value=screen.height; 
document.getElementById('form_size').submit(); 
} 
</script> 
</head> 
<body onload='getSize()'> 
<form method='post' id='form_size'> 
<input type='hidden' name='width' id='inp_width'/> 
<input type='hidden' name='height' id='inp_height'/> 
</form> 
</body> 
</html> 


<?php 
}else{ 
    var_dump($_SESSION['screen_size']); 
} 

這是一個簡單的方法,並在頁面將刷新一次。

您可能想要使用AJAX。另外,如果有人拒絕會話cookie,這將永遠循環,更好地測試瀏覽器是否接受cookie。

+1

感謝兄弟@Loic :) –

+0

如果你喜歡答案,請驗證它,它會獎勵我的幫助:) –

1

您無法使用php獲取瀏覽器寬度。 PHP是服務器代碼。請致電this。您可以使用ajax在您的php代碼中發送(發佈)瀏覽器寬度。

希望它有幫助。