그누보드 모바일기기 구분
관련링크
본문
그누보드 게시판에서 모바일 브라우저를 구분하려고 합니다.
그누보드4를 사용중이고 게시판 스킨파일 중 list,view,write페이지 접속시 모바일기기에서는 다른 스킨을 적용하려고 합니다.
/skin/board/스킨명/list.skin.php에 다음과 같이 모바일기기를 구분하라는 php구문을 넣었습니다.
<?
$arr_browser = array ("iPhone","UP.Browser","Nokia","webOS","Opera Mini","opera mobi","Windows Phone","POLARIS","Ice Cream Sandwich","Gallexy","Optimus","BlackBerry","Android","Gallexy","Windows CE","LG","MOT","SAMSUNG","SonyEricsson","IEMobile","Mobile","lgtelecom","PPC");
for($indexi = 0; $indexi < count($arr_browser); $indexi++) {
if(strpos($_SERVER['HTTP_USER_AGENT'],$arr_browser[$indexi]) == true) {
include_once("$board_skin_path/list.skin3.php");
} else {
include_once("$board_skin_path/list.skin2.php");
}
}
?>
그리고 기존에 list.skin.php에 있던 소스는 list.skin2.php에 복사해두고 list.skin3.php파일에서는 글제목만 뽑아내려고 합니다. 우선 잘되나 테스트 해보려고 list.skin3.php파일에서는 td안에 작성자만 지웠습니다.
위에 php구문을 보면 배열된 모바일기기에서는 list.skin3.php파일을 가져오고,
그게 아니면 list.skin2.php파일을 가져오라는 명령인데, 문제는.....
pc에서 접속하면 문제없이 list.skin2.php파일만 가져오는
아이패드를 비롯한 모바일기기에서 접속하면 두개 파일을 모두 가져와 버리네요.
list.skin2.php파일을 가져오고, 그 밑에 list.skin3.php파일을 가져오구요.
뭐가 문제일까요? ㅜㅜ 고수님들 알려주세요~~~
답변 2
이렇게 하셔야 할것 같아요.
<?
$bool_mobile = false;
$arr_browser = array ("iPhone","UP.Browser","Nokia","webOS","Opera Mini","opera mobi","Windows Phone","POLARIS","Ice Cream Sandwich","Gallexy","Optimus","BlackBerry","Android","Gallexy","Windows CE","LG","MOT","SAMSUNG","SonyEricsson","IEMobile","Mobile","lgtelecom","PPC");
for($indexi = 0; $indexi < count($arr_browser); $indexi++) {
if(strpos($_SERVER['HTTP_USER_AGENT'],$arr_browser[$indexi]) == true) {
$bool_mobile = true;
break;
}
}
if ( $bool_mobile ) include_once("$board_skin_path/list.skin3.php");
else include_once("$board_skin_path/list.skin2.php");
?>
감사합니다.
다른분에게 자문을 구해서 해결을 하긴 했는데, thisgun님 소스가 더 맞는것 같네요.
<?
/*
$arr_browser = array ("iPhone","UP.Browser","Nokia","webOS","Opera Mini","opera mobi","Windows Phone","POLARIS","Ice Cream Sandwich","Gallexy","Optimus","BlackBerry","Android","Gallexy","Windows CE","LG","MOT","SAMSUNG","SonyEricsson","IEMobile","Mobile","lgtelecom","PPC");
for($indexi = 0; $indexi < count($arr_browser); $indexi++) {
if(strpos($_SERVER['HTTP_USER_AGENT'],$arr_browser[$indexi]) == true) {
include_once("$board_skin_path/list.skin3.php");
} else {
include_once("$board_skin_path/list.skin2.php");
}
}
*/
$browser_type=explode("(",$_SERVER['HTTP_USER_AGENT']);
$browser_type=explode(" ",$browser_type[1]);
echo $browser_type[0];
echo "<br>";
if($browser_type[0]!="Windows"){
include_once("$board_skin_path/list.skin3.php");
} else {
include_once("$board_skin_path/list.skin2.php");
}
?>
답변을 작성하시기 전에 로그인 해주세요.