CodeIgniter, руководство пользователя к версии 1.6.1


Класс 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!';
}

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