사용자가 페이지를 방문 할 때 화면과 뷰포트의 높이/너비를 PHP로 가져 오려고합니다.첫로드시 PHP에서 사용자 화면 및 뷰포트 크기 가져 오기
나는 여러 가지 방법을 시도했지만 모두 다른 문제를 일으 킵니다.
내 목표 :
- 가 첫 번째로드에 대한 정보 (NO 점프 페이지, 아니 다시로드)를 가져옵니다.
는
로드에서 실행되는 PHP의 나머지 부분에 영향을 미치지 URL을 변경하거나 두 번
뷰포트 가져 오기위한 자바 스크립트 :
if(!isset($_POST['width']) || !isset($_POST['height'])) {
echo '
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var height = $(window).height();
var width = $(window).width();
$.ajax({
type: \'POST\',
data: {
"height": height,
"width": width
},
success: function (data) {
$("body").html(data);
},
});
});
</script>
';
}
$user_width = $_POST['width'];
$user_height = $_POST['height'];
문제 : 모든 PHP가 두 번,로드시 한 번, 한 번 값을 반환 할 때 (두 번째 시간은 첫 번째 이후 약 4 초), PHP의 나머지 부분을 엉망이되게 만듭니다 ... 또한 페이지를 매우로드하게 만듭니다.
if(isset($_SESSION['screen_width']) AND isset($_SESSION['screen_height'])){
$user_width = $_SESSION['screen_width'];
$user_height = $_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>';
}
문제 : 다음 URL로 화면 크기를 퍼팅
을 느리게 변경 URL을 (다른 코드에 영향을 미치는 그들이 지금이 무표정 URL에 비해 나쁜 보이는); 뷰포트 크기를 반환하지 않습니다 afaik
저는 멍청 해요. 어쩌면하는 것이 쉽지만 실제로는 잘 모릅니다. 나는 많은 것을 수색했다. 그것이 위의 방법을 얻은 방법입니다. 그러나 나는 그들이 나를 위해 일하도록 할 수 없었다. Afaik, 나는 비슷한 상황에 대한 해결책을 보지 못했습니다.
감사합니다 :)
불가능합니다. 너 한테 묻는대로해라. PHP는 서버 측을 실행합니다. 사용자의 브라우저에서 실행되는 javascript로 원하는 것을 성취 할 수 있습니다. – andrew
예. 나는 PHP가 서버 측이라고 이해한다. 그래서 내가 문제가 생겼다. 위에서 보여준 것처럼 자바 스크립트를 사용하여 치수를 가져 와서 PHP에 게시했습니다. 그것은 작동하지만 모든 php를 다시 실행하는 문제가 발생합니다 (내 사이트에서 두 번 출력, 엉뚱한 결과 등이 발생합니다). 어쩌면 내가하는 일보다 자바 스크립트에서 PHP로 게시하는 더 좋은 방법이 있을까요? 고마워. – kenji359