Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.0

Search User Guide

# Класс агента пользователя (User Agent)

Класс агента пользователя предоставляет функции, которые помогают идентифицировать информацию о браузере, мобильном устройстве или роботе, посещающих ваш сайт. В дополнение вы можете получить информацию о реферере, а также о поддерживающемся языке и принимаемой кодировке.

## Инициализация класса

Как и большинство других классов в CodeIgniter, класс агента пользователя инициализируется в вашем контроллере посредством функции $this->load->library:

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

Загруженный объект класса доступен для использования как $this->agent

## Определения агента пользователя

Определения имени агента пользователя находятся в конфигурационном файлеapplication/config/user_agents.php. Вы можете добавлять элементы для различных агентов при необходимости.

## Пример

Когда класс агента пользователя инициализирован, он будет пытаться определить агент пользователя, посещающего сайт, и пытаться узнать, является ли он веб-браузером, мобильным устройством или роботом. Он также соберет информацию о платформе, если она доступна.

`$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.)`

# Справка по функциям

## $this->agent->is_browser()

Возвращает 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()

Возвращает TRUE, если агент пользователя опознан как мобильное устройство.

`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()

Возвращает TRUE, если агент пользователя опознан как робот.

Примечание: Библиотека агента пользователя содержит только часто употребляемые определения роботов. Это не полный список ботов. Их сотни, поэтому поиск каждого из них может быть очень затратным. Если вы обнаружили, что какие-то боты, незарегистрированные в списке, часто посещают ваш сайт, вы можете добавить их в ваш файл application/config/user_agents.php.

## $this->agent->is_referral()

Возвращает TRUE, если агент пользователя был направлен с другого сайта.

## $this->agent->browser()

Возвращает строку, содержащую имя веб-браузера, через который просматривают ваш сайт.

## $this->agent->version()

Возвращает строку, содержащую номер версии веб-браузера.

## $this->agent->mobile()

Возвращает строку, содержащую имя мобильного устройства.

## $this->agent->robot()

Возвращает строку, содержащую имя робота.

## $this->agent->platform()

Возвращает строку, содержащую платформу, с которой просматривают ваш сайт (Linux, Windows, OS X и т.д.).

## $this->agent->referrer()

Реферер, если агент пользователя пришел с другого сайта. Обычно вы будете проверять это так:

`if ($this->agent->is_referral())
{
echo $this->agent->referrer();
}`

## $this->agent->agent_string()

Возвращает строку, содержащую полную строку агента пользователя. Обычно это будет что-то вроде этого:

`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()

Позволяет вам определить, какой конкретный язык принимает агент пользователя. Пример:

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

Примечание: Эта функция не очень надежна, так как некоторые браузеры не предоставляют эту инфорамцию, а некоторые предоставляют, но не очень аккуратно.

## $this->agent->accept_charset()

Позволяет вам определить, какую конкретно кодировку принимает агент пользователя. Пример:

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

Примечание: Эта функция обычно не очень надежна, так как некоторые браузеры не отправляют информацию о кодировке, а некоторые делают это не очень корректно.

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter