CodeIgniter User Guide Version 2.0.0


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

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

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

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

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

Загруженный класс доступен через: $this->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(); // Platform info (Windows, Linux, Mac, etc.)

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

$this->agent->is_browser()

Возвращает TRUE/FALSE (boolean), если агент пользователя — известный браузер.

$this->agent->is_mobile()

Возвращает TRUE/FALSE (boolean), если агент пользователя — мобильное устройство.

$this->agent->is_robot()

Возвращает TRUE/FALSE (boolean), если агент пользователя — робот.

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

$this->agent->is_referral()

Возвращает TRUE/FALSE (boolean), если обнаружено, что агент пользователя пришел по ссылке с другого сайта.

$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!';
}

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