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
현재 방문자가 보고한 것과 다른 사용자 정의 사용자 에이전트 문자열을 파싱합니다.