Фреймворк CodeIgniter Version 2.1.3


Класс агента пользователя (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 = 'Неидентифицированный User Agent';
}

echo $agent;

echo $this->agent->platform(); // Информация о платформе (Windows, Linux, Mac, что-то еще)

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

$this->agent->is_browser()

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

if ($this->agent->is_browser('Safari'))
{
    echo 'Вы используете Safari.';
}
else if ($this->agent->is_browser())
{
    echo 'Вы используете браузер.';
}

Примечание:  строка "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 'Ваш язык английский!';
}

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

$this->agent->accept_charset()

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

if ($this->agent->accept_charset('utf-8'))
{
    echo 'Ваш браузер поддерживает UTF-8!';
}

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

    Поддержать сайт на родительском проекте КГБ