User Agent 클래스

User Agent 클래스는 사이트를 방문하는 브라우저, 모바일 장치 또는 로봇에 대한 정보를 식별하는 데 도움이 되는 함수를 제공합니다. 또한 리퍼러 정보와 언어 및 지원되는 문자 집합 정보도 얻을 수 있습니다.

User Agent 클래스 사용

클래스 초기화

CodeIgniter의 대부분의 클래스와 마찬가지로 User Agent 클래스는 컨트롤러에서 $this->load->library 함수를 사용하여 초기화합니다:

$this->load->library('user_agent');

로드되면 $this->agent를 사용하여 객체에 접근할 수 있습니다.

User Agent 정의

사용자 에이전트 이름 정의는 다음 위치에 있는 설정 파일에 있습니다: application/config/user_agents.php. 필요한 경우 다양한 사용자 에이전트 배열에 항목을 추가할 수 있습니다.

예시

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 등)

클래스 레퍼런스

class CI_User_agent
is_browser([$key = NULL])
매개변수:
  • $key (string) – 선택적 브라우저 이름

반환:

사용자 에이전트가 (지정된) 브라우저이면 TRUE, 아니면 FALSE

반환 형식:

bool

사용자 에이전트가 알려진 웹 브라우저인 경우 TRUE/FALSE(불리언)를 반환합니다.

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

참고

이 예시에서 “Safari” 문자열은 브라우저 정의 목록의 배열 키입니다. 새 브라우저를 추가하거나 문자열을 변경하려면 application/config/user_agents.php에서 이 목록을 찾을 수 있습니다.

is_mobile([$key = NULL])
매개변수:
  • $key (string) – 선택적 모바일 장치 이름

반환:

사용자 에이전트가 (지정된) 모바일 장치이면 TRUE, 아니면 FALSE

반환 형식:

bool

사용자 에이전트가 알려진 모바일 장치인 경우 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) – 선택적 로봇 이름

반환:

사용자 에이전트가 (지정된) 로봇이면 TRUE, 아니면 FALSE

반환 형식:

bool

사용자 에이전트가 알려진 로봇인 경우 TRUE/FALSE(불리언)를 반환합니다.

참고

사용자 에이전트 라이브러리에는 가장 일반적인 로봇 정의만 포함되어 있습니다. 완전한 봇 목록이 아닙니다. 수백 개가 있어서 각각 검색하는 것은 매우 비효율적입니다. 사이트를 자주 방문하는 일부 봇이 목록에 없는 경우 application/config/user_agents.php 파일에 추가할 수 있습니다.

is_referral()
반환:

사용자 에이전트가 리퍼럴이면 TRUE, 아니면 FALSE

반환 형식:

bool

사용자 에이전트가 다른 사이트에서 참조된 경우 TRUE/FALSE(불리언)를 반환합니다.

browser()
반환:

감지된 브라우저 또는 빈 문자열

반환 형식:

string

사이트를 보고 있는 웹 브라우저의 이름이 포함된 문자열을 반환합니다.

version()
반환:

감지된 브라우저 버전 또는 빈 문자열

반환 형식:

string

사이트를 보고 있는 웹 브라우저의 버전 번호가 포함된 문자열을 반환합니다.

mobile()
반환:

감지된 모바일 장치 브랜드 또는 빈 문자열

반환 형식:

string

사이트를 보고 있는 모바일 장치의 이름이 포함된 문자열을 반환합니다.

robot()
반환:

감지된 로봇 이름 또는 빈 문자열

반환 형식:

string

사이트를 보고 있는 로봇의 이름이 포함된 문자열을 반환합니다.

platform()
반환:

감지된 운영 체제 또는 빈 문자열

반환 형식:

string

사이트를 보고 있는 플랫폼(Linux, Windows, OS X 등)이 포함된 문자열을 반환합니다.

referrer()
반환:

감지된 리퍼러 또는 빈 문자열

반환 형식:

string

사용자 에이전트가 다른 사이트에서 참조된 경우의 리퍼러입니다. 일반적으로 다음과 같이 테스트합니다:

if ($this->agent->is_referral())
{
        echo $this->agent->referrer();
}
agent_string()
반환:

전체 사용자 에이전트 문자열 또는 빈 문자열

반환 형식:

string

전체 사용자 에이전트 문자열이 포함된 문자열을 반환합니다. 일반적으로 다음과 같은 형태입니다:

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) – 언어 키

반환:

제공된 언어가 허용되면 TRUE, 아니면 FALSE

반환 형식:

bool

사용자 에이전트가 특정 언어를 허용하는지 확인할 수 있습니다. 예시:

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

참고

이 메소드는 일부 브라우저가 언어 정보를 제공하지 않고, 제공하더라도 항상 정확하지는 않기 때문에 일반적으로 매우 신뢰할 수 없습니다.

languages()
반환:

허용된 언어 배열 목록

반환 형식:

array

사용자 에이전트가 지원하는 언어 배열을 반환합니다.

accept_charset([$charset = 'utf-8'])
매개변수:
  • $charset (string) – 문자 집합

반환:

문자 집합이 허용되면 TRUE, 아니면 FALSE

반환 형식:

bool

사용자 에이전트가 특정 문자 집합을 허용하는지 확인할 수 있습니다. 예시:

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

참고

이 메소드는 일부 브라우저가 문자 집합 정보를 제공하지 않고, 제공하더라도 항상 정확하지는 않기 때문에 일반적으로 매우 신뢰할 수 없습니다.

charsets()
반환:

허용된 문자 집합 배열 목록

반환 형식:

array

사용자 에이전트가 허용하는 문자 집합 배열을 반환합니다.

parse($string)
매개변수:
  • $string (string) – 사용자 정의 사용자 에이전트 문자열

반환 형식:

void

현재 방문자가 보고한 것과 다른 사용자 정의 사용자 에이전트 문자열을 파싱합니다.