원래는 $_SERVER['HTTP_USER_AGENT']
써서 사용자의 브라우저 정보를 가져온다음
preg_match
와 수많은 if
문으로 브라우저 정보며 버젼이며 OS 정보며..
하나하나 찾아서 가져오는 함수를 사용했었는데 여간 번거로운일이 아니였다.
최근에 또 브라우저 정보를 가져와야해서
간절한 바람으로 누가 잘만들어놓은 함수가 있을꺼라며 구글링을 했는데
PHP 에서 get_browser
라는 함수가 있다는걸 발견.
하지만 PHP에서 기본적으로 제공하는게 아니라서 php_browscap.ini 을 다운로드 받고 php.ini 에서 설정을 해줘야 한다.
1. php_browscap.ini 다운로드 : [다운로드]
2. php_browscap.ini 다운로드 받은 경로 기억해뒀다가,
만약 다운로드 받아놓은 경로거 c:/server/php/ 이라면 php.ini에 다음과 같이 설정
[browscap]
browscap = C:/server/php/php_browscap.ini
3. 아파치 재시작
4. 그리고 다음과같이 get_browser
를 사용하면 결과를 확인할 수 있다
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
$browser = get_browser(null, true);
print_r($browser);
결과 :
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3
Array
(
[browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
[browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
[parent] => Firefox 0.9
[platform] => WinXP
[browser] => Firefox
[version] => 0.9
[majorver] => 0
[minorver] => 9
[cssversion] => 2
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[backgroundsounds] =>
[vbscript] =>
[javascript] => 1
[javaapplets] => 1
[activexcontrols] =>
[cdf] =>
[aol] =>
[beta] => 1
[win16] =>
[crawler] =>
[stripper] =>
[wap] =>
[netclr] =>
)
만약 php.ini 을 수정할 수 없는 상황이라면 다음과 같이 사용도 가능하다고 한다
function getBrowser()
{
$agent = $_SERVER['HTTP_USER_AGENT'];
$raw = array();
$brows = parse_ini_file(dirname(__FILE__) . "/php_browscap.ini",
true);
foreach($brows as $k=>$v)
{
if(fnmatch($k, $agent))
{
$raw['browser_name_pattern'] = $k;
$regex = preg_replace(
array("/\./", "/\*/", "/\?/"),
array("\.", ".*", ".?"),
$k
);
$raw['browser_name_regex'] = strtolower("^$regex$");
foreach($brows as $j=>$p)
{
if($v['Parent'] == $j)
{
foreach($brows as $q=>$r)
{
if($p['Parent'] == $q)
{
$raw = array_merge($raw, $r, $p, $v);
foreach($raw as $d=>$z)
{
$i = strtolower($d);
$list[$i] = $z;
}
}
}
}
}
break;
}
}
return $list;
}
print_r(getBrowser());
참고사이트
http://php.net/manual/en/function.get-browser.php
http://blog.habonyphp.com/413#.VXZXrM94s-U