Класс пользовательского агента
Класс пользовательского агента предоставляет функции, которые помогают идентифицировать информацию о браузере, мобильном устройстве или роботе посещающего ваш сайт. Кроме того, вы можете получить информации о реферере, а также информации о языке и поддерживаемой кодировке.
Использование класса пользовательского агента
Инициализация класса
Как и большинство других классов CodeIgniter класс пользовательского агента инициализируется в контроллере, используя $this->load->library функцию:
$this->load->library('user_agent');
После загрузки объект будет доступен через: $this->agent
Завсисимости класса агента пользователя
Завсисимости класса агента пользователя находятся в файле config, расположенном в: 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(); // Платформа (Windows, Linux, Mac и тд.)
Справка класса
- class CI_User_agent
- is_browser([$key = NULL])
Параметры: - $key (строка) – Дополнительное имя браузера
Возвращает: TRUE если агент пользователя (определен как) браузер, FALSE если нет
Возвращаемый тип: булево
Возвращает TRUE/FALSE (булево) если агент пользователя определен как веб-браузер.
if ($this->agent->is_browser('Safari')) { echo 'You are using Safari.'; } elseif ($this->agent->is_browser()) { echo 'Вы используете браузер.'; }
Примечание
Строка “Safari” в данном примере является ключом массива в списке определения браузера. Вы можете найти этот список в application/config/user_agents.php если вы хотите добавить новые браузеры или изменить имеющиеся.
- is_mobile([$key = NULL])
Параметры: - $key (строка) – Дополнительное имя мобильного устройства
Возвращает: TRUE если агент пользователя (определен как) мобильное устройство, FALSE если нет
Возвращаемый тип: булево
Возвращает TRUE/FALSE (булево) если агент пользователя определен как мобильное устройство.
if ($this->agent->is_mobile('iphone')) { $this->load->view('iphone/home'); } elseif ($this->agent->is_mobile()) { $this->load->view('mobile/home'); } else { $this->load->view('web/home'); }
- is_robot([$key = NULL])
Параметры: - $key (строка) – Дополнительное имя робота
Возвращает: TRUE если агент пользователя (определен как) робот, FALSE если нет
Возвращаемый тип: булево
Возвращает TRUE/FALSE (булево) если агент пользователя определен как робот.
Note
Библиотеки агента пользователя содержит лишь самые общие определения робота. Это далеко не полный список ботов. Их сотни, так что поиск каждого из них будет не очень эффективным. Если вы обнаружите, что некоторые боты, которые часто посещают ваш сайт отсутствует в списке, вы можете добавить их в свой application/config/user_agents.php файл.
- is_referral()
Возвращает: TRUE если агент пользователя реферал, FALSE если нет Возвращаемый тип: булево Возвращает TRUE/FALSE (булево) если агент пользователя определен как реферал.
- browser()
Возвращает: Обнаруженный браузера или пустую строку Возвращаемый тип: строка Возвращает строку, содержащую имя веб-браузера просмотривающего ваш сайт.
- version()
Возвращает: Обнаруженную версию браузера или пустую строку Возвращаемый тип: строка Возвращает строку, содержащую версию веб-браузера просмотривающего ваш сайт.
- mobile()
Возвращает: Обнаруженное мобильное устройство или пустую строку Возвращаемый тип: строка Возвращает строку, содержащую имя мобильного устройства просмотривающего ваш сайт.
- robot()
Возвращает: Обнаруженный робот или пустую строку Возвращаемый тип: строка Возвращает строку, содержащую имя робота просмотривающего ваш сайт.
- platform()
Возвращает: Обнаруженную платформу ОС или пустую строку Возвращаемый тип: строка Возвращает строку, содержащую имя платформы просмотривающей ваш сайт (Linux, Windows, OS X и тд.).
- referrer()
Возвращает: Обнаруженного реферала или пустую строку Возвращаемый тип: строка Реферер, если пользователь был передан с другого сайта. Как правило, вы будете проверять это следующим образом:
if ($this->agent->is_referral()) { echo $this->agent->referrer(); }
- agent_string()
Возвращает: Полную строку агента пользователя или пустую строку Возвращаемый тип: строка Возвращает строку, содержащую всю информацию агента пользователя. Обычно это будет что-то вроде этого:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2
- accept_lang([$lang = 'en'])
Параметры: - $lang (строка) – Ключ языка
Возвращает: TRUE если предусмотрено принятыми языками, FALSE если нет
Возвращаемый тип: bool
Позволяет определить, принимает ли агент пользователя конкретный язык. Пример:
if ($this->agent->accept_lang('en')) { echo 'You accept English!'; }
Примечание
Этот способ обычно не очень надежный, так как некоторые браузеры не предоставляют информацию о языке, и даже среди тех, которые это делают - не всегда точно возможно определить.
- languages()
Возвращает: Список массива принятых языках Возвращаемый тип: массив Возвращает массив поддерживаемых агентом пользователя языков.
- accept_charset([$charset = 'utf-8'])
Параметры: - $charset (строка) – Кодировка
Возвращает: TRUE если кодировка принимается, FALSE если нет
Возвращаемый тип: булево
Позволяет определить, принимает ли агент пользователя определенную кодировку. Пример:
if ($this->agent->accept_charset('utf-8')) { echo 'You browser supports UTF-8!'; }
Примечание
Этот способ обычно не очень надежный, так как некоторые браузеры не предоставляют информацию о кодировке, и даже среди тех, которые это делают - не всегда точно возможно определить.