본문 바로가기

Programming &/Language

브라우저 정보 및 OS정보를 가져오자. get_browser()

PHP에서 브라우저 및 OS 정보를  알아내려면 여간 번거러운것이 아니다. 현재는 맞춰놨다고 해도 새로운 브라우즈 새로운 OS가 등장하게 되면 소스를 또 수정해야할 수도 있다.


▲ 브라우저 정보를 이용한 통계


▲ OS정보를 이용한 통계



PHP에서는 get_browser() 라는 유용한 함수를 제공한다.
하지만 이것도 기본함수로 사용하기 위해서는 약간의 설정이 필요하다.

php 메뉴얼에서는 아래와 같은 주의를 주고 있다.

주의

Note: In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system.
browscap.ini is not bundled with PHP, but you may find an up-to-date » php_browscap.ini file here.
While browscap.ini contains information on many browsers, it relies on user updates to keep the database current. The format of the file is fairly self-explanatory. 


그러면 get_browser() 함수를 사용하기 위해서 약간의 설정을 추가해보자.

먼저 get_browser() 함수를 사용하려면 
php_browscap.ini 또는 lite_php_browscap.ini 가 파일이 필요하다.

이 파일들은 아래 링크로 다운로드가 가능하다.

위 2개 파일이 모두 필요한것은 아니고 사용용도에 따라서 선택하여 사용하면 된다.
여기서는 lite_php_browscap.ini 을 기준으로 했다.

다운로드 받은 파일을 php 의 lib 디렉토리에 저장하자.
/usr/local/lib/php/lite_php_browscap.ini 
또는 
/usr/local/php/lib/php/lite_php_browscap.ini
또는
임의경로에 저장해도 무방하다.

/usr/local/lib/php/lite_php_browscap.ini 에 저장했다고 가정하고
php.ini 파일을 수정하자.

[browscap]
;browscap = extra/browscap.ini
browscap = /usr/local/lib/php/lite_php_browscap.ini

이제 적용을 하기 위해서 apache 를 재시작한다.

웹사이트에서 아래와 같이 테스트를 해보자.

test.php

 <?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser get_browser(nulltrue);
print_r($browser);
?>


출력은 아래와 같이 나올것이다.

 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Array
(
[browser_name_regex] => ^mozilla/4\.0 (compatible; msie 8\.0; windows nt 6\.1; wow64; trident/4\.0.*).*$
[browser_name_pattern] => Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0*)*
[parent] => IE 8.0
[platform] => Win7
[win32] =>
[win64] => 1
[browser] => IE
[version] => 8.0
[majorver] => 8
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[backgroundsounds] => 1
[cdf] => 1
[vbscript] => 1
[javaapplets] => 1
[javascript] => 1
[activexcontrols] => 1
[cssversion] => 3
[supportscss] => 1
[minorver] => 0
[alpha] =>
[beta] =>
[win16] =>
[isbanned] =>
[ismobiledevice] =>
[issyndicationreader] =>
[crawler] =>
[aol] =>
[aolversion] => 0
)


$browser 배열을 이용하면 원하는 값을 이용할 수 있다.

* 주의할점은 가끔씩 lite_php_browscap.ini 파일을 다운받아서 업데이트를 해야한다.