User Agent Class
User Agent 클래스의 함수들을 이용하시면 여러분의 사이트를 방문한사람이 브라우저인지, 모바일기기인지,로봇인지 구분하는 정보를 얻을 수 있습니다. 게다가, 참조 url 정보(referrer)와 언어 및 지원문자셋(character-set)정보도 얻을 수 있습니다.
클래스 초기화 Initializing the Class
다른 클래스들과 마찬가지로 User Agent 클래스도 컨트롤러에서 $this->load->library 함수를 통해 초기화 합니다:
$this->load->library('user_agent');
일단 로드되면 , $this->agent 으로 객체를 이용하실 수 있습니다.
User Agent 정의 User Agent Definitions
user agent 이름은 설정파일에 정의되어있으며 application/config/user_agents.php 에 위치합니다. 필요하다면 아이템을 추가하실수도 있습니다.
예제 Example
User Agent 클래스가 초기화되면 , 사이트방문자가 브라우저인지, 모바일기기인지, 로봇인지에대한 확인을 시도합니다. 또한, 플렛폼 정보도 모읍니다.
$this->load->library('user_agent');
if ($this->agent->is_browser())
{
$agent = $this->agent->browser().' '.$this->agent->version();
}
elseif ($this->agent->is_robot())
{
$agent = $this->agent->robot();
}
elseif ($this->agent->is_mobile())
{
$agent = $this->agent->mobile();
}
else
{
$agent = 'Unidentified User Agent';
}
echo $agent;
echo $this->agent->platform(); // 플렛폼정보 (Windows, Linux, Mac, etc.)
함수 참조 Function Reference
$this->agent->is_browser()
user agent 가 알려진 웹브라우저인지 여부에 따라 TRUE/FALSE 를 리턴합니다.
if ($this->agent->is_browser('Safari'))
{
echo 'You are using Safari.';
}
else if ($this->agent->is_browser())
{
echo 'You are using a browser.';
}
주의: 이 예제에서 "Safari"라는 문자열은 브라우저 정의 목록 키 값입니다. 이 목록은 application/config/user_agents.php 에 정의되어 있으며 새 브라우저를 추가하거나 문자열을 변경할 수 있습니다.
$this->agent->is_mobile()
user agent 가 알려진 모바일기기인지 여부에 따라 TRUE/FALSE 를 리턴합니다.
if ($this->agent->is_mobile('iphone'))
{
$this->load->view('iphone/home');
}
else if ($this->agent->is_mobile())
{
$this->load->view('mobile/home');
}
else
{
$this->load->view('web/home');
}
$this->agent->is_robot()
user agent 가 알려진 로봇인지 여부에 따라 TRUE/FALSE 를 리턴합니다.
참고: user agent라이브러리는 단지 가장많이 알려진 로봇정보만 가지고 있습니다. 완벽한 로봇목록이 아닙니다. 로봇은 수백종이 있으므로 각각을 모두 찾는것은 그다지 능률적이지 않습니다. 여러분의 사이트를 방문한 로봇이 리스트에 없다면 직접 application/config/user_agents.php 파일에 추가하실 수 있습니다.
$this->agent->is_referral()
user agent 가 다른 사이트에서 여러분의 사이트로 넘어왔는지 여부에 따라 TRUE/FALSE 를 리턴합니다.
$this->agent->browser()
여러분의 사이트를 보고있는 브라우저의 이름을 담은 문자열을 리턴합니다.
$this->agent->version()
여러분의 사이트를 보고있는 브라우저의 버전번호를 리턴합니다.
$this->agent->mobile()
여러분의 사이트를 보고있는 모바일기기의 이름을 리턴합니다.
$this->agent->robot()
여러분의 사이트를 보고있는 로봇의 이름을 리턴합니다.
$this->agent->platform()
여러분의 사이트를 보고있는 컴퓨터의 플렛폼을 리턴합니다(Linux, Windows, OS X, 등.).
$this->agent->referrer()
user agent 가 다른사이트를 통해 여러분의 사이트를 방문했다면 그 사이트를 리턴합니다. 일반적으로 다음코드를 통해 테스트할수 있습니다:
if ($this->agent->is_referral())
{
echo $this->agent->referrer();
}
$this->agent->agent_string()
전체 user agent 문자열을 리턴합니다. 일반적으로 아래와같습니다:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2
$this->agent->accept_lang()
user agent 가 특정언어를 허용(accept)하는지를 확인합니다. 예:
if ($this->agent->accept_lang('en'))
{
echo 'You accept English!';
}
참고: 이 함수의 신뢰성은 그렇게 높지않습니다. 왜냐하면 몇몇 브라우저는 언어정보를 제공하지않고, 또한 제공한다해도 항상 정확하지는 않기 때문입니다.
$this->agent->accept_charset()
user agent 가 특정문자셋(character set)를 허용(accept)하는지를 확인합니다. 예:
if ($this->agent->accept_charset('utf-8'))
{
echo 'You browser supports UTF-8!';
}
참고: 이 함수의 신뢰성은 그렇게 높지않습니다. 왜냐하면 몇몇 브라우저는 문자셋정보를 제공하지않고, 또한 제공한다해도 항상 정확하지는 않기 때문입니다.