본문 바로가기
IT-개발,DB

[개발/php] PHP로 모바일 브라우저 여부 체크( mobile user agent)

by SB리치퍼슨 2011. 4. 2.

모바일 브라우저 여부 체크를 하는 php 함수 찾기가 어렵네요.

가장 잘되어 있는 곳
자신의 아파치 웹로그에서 직접 찾는 방법으로,

#!/bin/sh
#
# 웹로그에서 폰 브라우저만 추출
#
# 2009.4.13(월)
# by 좋은진호(truefeel, http://coffeenix.net/ )

DATE="20090412"
if [ "$1" != "" ]; then
	DATE="$1"
fi

for ph in SCH- SPH- SGH- LG- CANU IM- EV- iPhone Nokia BlackBerry
do
	echo "* search : $DATE & $ph"
	grep -h $ph access.log.${DATE}* > phone-${DATE}_${ph}.txt
	sleep 1
done

#
awk -F\" '{print $6}' phone-${DATE}_* |sort | uniq > phone-list_${DATE}.txt


그러니깐 잠깐 생각을 해보면,
당장 iphone과 삼성 옴니아, 그리고 LG풀브라우저에서 찾을려면,
iphone, samsung, lgtel, mobile 4문장이 들어간 것을 모바일로 보면 될 것 같습니다.

// 웹브라우저 user agent 체크
if( preg_match('/(iphone|samsung|lgtel|mobile)/i', $_SERVER['HTTP_USER_AGENT']) ) {
   //모바일이면
}

그래서 sitehis.com은
해더 테일 스킨을 다음 처럼 만들고,
<html>
<body>
<link href="/css.css" rel="stylesheet" type="text/css" />
모바일용 게시판 뷰어 페이지입니다. [<a href="<?=$_SERVER['REQUEST_URI']?>&mobileagent=no">PC용보기</a>]
<hr />
{{BODY}}
</body>
</html>

read.php에 다음처럼 넣었습니다.
// 웹브라우저 user agent 체크
 //echo $_SERVER['HTTP_USER_AGENT'];
 if( $_GET['mobileagent']=='yes' or ($_GET['mobileagent']!='no' and preg_match('/(iphone|samsung|lgtel)/i', $_SERVER['HTTP_USER_AGENT'])) ) {
    //모바일이면
    $dbinfo['html_skin'] = 'mobile';
 }


그리고 모바일에 어떻게 보이는지 보고 싶으시면, 모바일로 보시거나 &mobileagent=yes 넣어서
다음링크에서 보시면 됩니다.
http://www.sitehis.com/spb3/sboard3/read.php?db=talk&cateuid=8&uid=207&mobileagent=yes 



더 좋은 방법 아시면,
댓글이나 트위터 http://twitter.com/sitehis 으로 알려주세요

출처: http://www.sitehis.com/spb3/sboard3/read.php?db=talk&cateuid=8&uid=207
반응형

댓글