php 브라우저 버전 확인 (IE6 – IE11까지)

모든 웹 언어에서 그렇듯 php 에서도 브라우저의 버젼을 확인하기 위해서는 브라우저에서 보내온 사용자 에이전트(User Agent) 문자열을 분석해서 판별하게 됩니다.
다른 언어 request 에 해당하는것이 php 에서는 대부분 $_SERVER[] 에 있습니다.
자세한것은 php 메뉴얼 http://php.net/manual/en/reserved.variables.server.php 를 참고하세요주로 많이 쓴는것만 적어보면

$_SERVER["REMOTE_ADDR"] // 사용자 IP
$_SERVER["HTTP_REFERER"] // 이전 페이지
$_SERVER["HTTP_USER_AGENT"] // 브라우저 정보

그럼 본격적으로 브라우저 버전을 확인하는 소스입니다.

$userAgent = $_SERVER["HTTP_USER_AGENT"]; 

if ( preg_match("/MSIE*/", $userAgent) ) { 
	// 익스플로러

	if ( preg_match("/MSIE 6.0[0-9]*/", $userAgent) ) {
		$browser = "Explorer 6"; 
	}elseif ( preg_match("/MSIE 7.0*/", $userAgent) ) {
		$browser = "Explorer 7";
	}elseif ( preg_match("/MSIE 8.0*/", $userAgent) ) {
		$browser = "Explorer 8"; 
	}elseif ( preg_match("/MSIE 9.0*/", $userAgent) ) {
		$browser = "Explorer 9"; 
	}elseif ( preg_match("/MSIE 10.0*/", $userAgent) ) {
		$browser = "Explorer 10"; 
	}else{
		// 익스플로러 기타
		$browser = "Explorer ETC"; 
	}

} elseif ( preg_match("/Trident*/", $userAgent &&  preg_match("/rv:11.0*/", $userAgent &&  preg_match("/Gecko*/", $userAgent) ) ) ) {
	$browser = "Explorer 11"; 

} elseif ( preg_match("/(Mozilla)*/", $userAgent) ) { 
	// 모질라 (파이어폭스)
	$browser = "mozilla";

} elseif ( preg_match("/(Nav|Gold|X11|Mozilla|Nav|Netscape)*/", $userAgent) ) { 
	// 네스케이프, 모질라(파이어폭스)
	$browser = "Netscape/mozilla";

} elseif ( preg_match("/Opera*/", $userAgent) ) { 
	// 오페라 
	$browser = "Opera";

} else {
	$browser = "Other"; 
}

echo $browser;

IE11 에서는 User Agent 에 “MSIE” 문구가 삭제 되었습니다.
이제 더이상 “MSIE” 만으로는 IE 유무를 판단할 수 없습니다.
(“MS의 Internet Explorer 11 소개 및 업그레이드” 문서에도 User Agent String 변경이 자세히 실려 있습니다)

// IE11 의 User-Agent 입니다. (Windows 10 버전이라서 Windows NT 10.0 가 들어갑니다
// "MSIE"를 대체하는 "Trident"  가 들어가 있고 버전인 "rv:11.0" 그리고 "Gecko" 가 추가 되었습니다.

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; SMTE; rv:11.0) like Gecko
#브라우저 #php #브라우져 #IE6 #IE10 #브라우저 확인 #ie11 #브라우저 판별