2.8.29. Модуль Browscap
Общая информация
Browscap (Browser Capabilities Project, BCP) — модуль для получения информации о возможностях браузера посетителя по его User-Agent. Его использование позволяет скриптам сайта адаптировать контент под конкретный браузер посетителя. Модуль можно использовать с любой версией PHP, для работы требуется поддержка на уровне кода сайта.
Настройка
Модуль по умолчанию отключён и включается в разделе «Настройки PHP» индивидуально для каждого сайта:
Доступно две версии модуля:
- «Lite-версия» (
lite_php_browscap.ini) — уменьшенная версия файлаphp_browscap.ini, которая содержит данные только об основных браузерах и поисковых система и использует меньше оперативной памяти. Подходит для большинства сайтов. - «Стандартная версия» (
php_browscap.ini) — содержит больше данных и использует больше оперативной памяти.
Существует также полная версия (full_php_browscap.ini) с расширенным набором данных, но из-за большого размера её использование не совсем целесообразно и она недоступна на хостинге.
Файлы версий хранятся на хостинге в каталоге /usr/local/share/browscap и раз в неделю обновляются с официального сайта.
Использование
Для получения информации о браузере используется функция PHP get_browser, в которую передаётся User-Agent посетителя.
Простой скрипт для проверки работы функции:
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
$browser = get_browser(null, true);
print_r($browser);
При обращении к этому скрипту через браузер он возвращает информацию об этом браузере.
Примеры результатов:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Array
(
[browser_name_regex] => ~^mozilla/5\.0 \(.*windows nt 10\.0.*\) applewebkit.* \(.*khtml.*like.*gecko.*\) chrome/134\.0.*safari/.*$~
[browser_name_pattern] => Mozilla/5.0 (*Windows NT 10.0*) applewebkit* (*khtml*like*gecko*) Chrome/134.0*Safari/*
[parent] => Chrome 134.0
[platform] => Win10
[comment] => Chrome 134.0
[browser] => Chrome
[version] => 134.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Array
(
[browser_name_regex] => ~^mozilla/5\.0 \(.*windows nt 10\.0.*\) applewebkit.* \(.*khtml.*like.*gecko.*\) chrome/134\.0.*safari/.*$~
[browser_name_pattern] => Mozilla/5.0 (*Windows NT 10.0*) applewebkit* (*khtml*like*gecko*) Chrome/134.0*Safari/*
[parent] => Chrome 134.0
[platform] => Win10
[comment] => Chrome 134.0
[browser] => Chrome
[browser_maker] => Google Inc
[version] => 134.0
[majorver] => 134
[device_type] => Desktop
[device_pointing_method] => mouse
[minorver] => 0
[ismobiledevice] =>
[istablet] =>
[crawler] =>
)
Если модуль не включён, скрипт будет возвращать только User-Agent.