Класс 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(); // 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) если пользователь будет опознан как робот.
Примечание: Библиотека, которой пользуется этот класс, содержит только наиболее распространенные заголовки, по которым определяется робот. Это далеко не полный список. Если вы обнаружите, что какой-то робот посещает ваш сайт и не определяется методами этого класса, вы можете добавить его в файл 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()
Вернет строку с полным описанием «User Agent» пользователя. Как правило она будет представлять из себя что-то вроде этого:
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('ru'))
{
echo 'Вы можете читать на русском!';
}
Примечание: Эта функция, как правило, не является надежной, т.к. не все браузеры посылают информацию об используемом языке. Даже когда информация о языке передана, она может быть не достоверной.
$this->agent->accept_charset()
Позволяет определить, принимает ли браузер пользователя символы в конкретной кодировке:
if ($this->agent->accept_charset('utf-8'))
{
echo 'Ваш браузер поддерживает UTF-8!';
}
Примечание: Эта функция, как правило, не является надежной, т.к. не все браузеры посылают информацию об используемой кодировке. Даже когда информация о кодировке передана, она может быть не достоверной.