User Agent Class

User Agent 클래스의 함수들을 이용하시면 여러분의 사이트를 방문한사람이 브라우저인지, 모바일기기인지,로봇인지 구분하는 정보를 얻을 수 있습니다. 게다가, 참조 url 정보(referrer)와 언어 및 지원문자셋(character-set)정보도 얻을 수 있습니다.

Using the User Agent Class

클래스 초기화 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(); // Platform info (Windows, Linux, Mac, etc.)

클래스 레퍼런스

class CI_User_agent
is_browser([$key = NULL])
인수:
  • $key (string) – Optional browser name
반환값:

TRUE if the user agent is a (specified) browser, FALSE if not

반환형:

bool

user agent 가 알려진 웹브라우저인지 여부에 따라 TRUE/FALSE를 리턴합니다.

if ($this->agent->is_browser('Safari'))
{
        echo 'You are using Safari.';
}
elseif ($this->agent->is_browser())
{
        echo 'You are using a browser.';
}

Note

이 예제에서 “Safari” 라는 문자열은 브라우저 정의 목록 키 값입니다. 이 목록은 application/config/user_agents.php 에 정의되어 있으며 새 브라우저를 추가하거나 문자열을 변경할 수 있습니다.

is_mobile([$key = NULL])
인수:
  • $key (string) – Optional mobile device name
반환값:

TRUE if the user agent is a (specified) mobile device, FALSE if not

반환형:

bool

user agent 가 알려진 모바일기기인지 여부에 따라 TRUE/FALSE를 리턴합니다.

if ($this->agent->is_mobile('iphone'))
{
        $this->load->view('iphone/home');
}
elseif ($this->agent->is_mobile())
{
        $this->load->view('mobile/home');
}
else
{
        $this->load->view('web/home');
}
is_robot([$key = NULL])
인수:
  • $key (string) – Optional robot name
반환값:

TRUE if the user agent is a (specified) robot, FALSE if not

반환형:

bool

user agent 가 알려진 로봇인지 여부에 따라 TRUE/FALSE를 리턴합니다.

Note

user agent라이브러리는 단지 가장많이 알려진 로봇정보만 가지고 있습니다. 완벽한 로봇목록이 아닙니다. 로봇은 수백종이 있으므로 각각을 모두 찾는 것은 그다지 능률적이지 않습니다. 여러분의 사이트를 방문한 로봇이 리스트에 없다면 직접 application/config/user_agents.php 파일에 추가하실 수 있습니다.

is_referral()
반환값:TRUE if the user agent is a referral, FALSE if not
반환형:bool

user agent 가 다른 사이트에서 여러분의 사이트로 넘어왔는지 여부에 따라 TRUE/FALSE를 리턴합니다.

browser()
반환값:Detected browser or an empty string
반환형:string

여러분의 사이트를 보고있는 브라우저의 이름을 담은 문자열을 리턴합니다.

version()
반환값:Detected browser version or an empty string
반환형:string

여러분의 사이트를 보고있는 브라우저의 버전번호를 리턴합니다.

mobile()
반환값:Detected mobile device brand or an empty string
반환형:string

여러분의 사이트를 보고있는 모바일기기의 이름을 리턴합니다.

robot()
반환값:Detected robot name or an empty string
반환형:string

여러분의 사이트를 보고있는 로봇의 이름을 리턴합니다.

platform()
반환값:Detected operating system or an empty string
반환형:string

여러분의 사이트를 보고있는 컴퓨터의 플렛폼을 리턴합니다(Linux, Windows, OS X, 등.).

referrer()
반환값:Detected referrer or an empty string
반환형:string

user agent 가 다른사이트를 통해 여러분의 사이트를 방문했다면 그 사이트를 리턴합니다. 일반적으로 다음 코드를 통해 테스트할 수 있습니다:

if ($this->agent->is_referral())
{
        echo $this->agent->referrer();
}
agent_string()
반환값:Full user agent string or an empty string
반환형: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
accept_lang([$lang = 'en'])
인수:
  • $lang (string) – Language key
반환값:

TRUE if provided language is accepted, FALSE if not

반환형:

bool

user agent 가 특정언어를 허용(accept)하는지를 확인합니다. 예제:

if ($this->agent->accept_lang('en'))
{
        echo 'You accept English!';
}

Note

이 함수의 신뢰성은 그렇게 높지않습니다. 왜냐하면 몇몇 브라우저는 언어정보를 제공하지 않고, 또한 제공한다해도 항상 정확하지는 않기 때문입니다.

languages()
반환값:An array list of accepted languages
반환형:배열(array)

user agent 에 의해 제공되는 언어 배열을 리턴합니다.

accept_charset([$charset = 'utf-8'])
인수:
  • $charset (string) – Character set
반환값:

TRUE if the character set is accepted, FALSE if not

반환형:

bool

user agent 가 특정문자셋(character set)를 허용(accept)하는지를 확인합니다. 예제:

if ($this->agent->accept_charset('utf-8'))
{
        echo 'You browser supports UTF-8!';
}

Note

이 함수의 신뢰성은 그렇게 높지않습니다. 왜냐하면 몇몇 브라우저는 문자셋정보를 제공하지 않고, 또한 제공한다 해도 항상 정확하지는 않기 때문입니다.

charsets()
반환값:An array list of accepted character sets
반환형:배열(array)

user agent 에 의해 허용되는 문자 배열을 리턴합니다.

parse($string)
인수:
  • $string (string) – A custom user-agent string
반환형:

void

현재 방문자에 의해 보고되는 것고 다른, 커스텀 user-agent string 를 파싱합니다.