Класс 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!';
}
Примечание: Эта функция не очень надежна, так как некоторые браузеры не передают информацию о приемлемой кодировке. И даже когда это происходит, информация не очень точна.