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.

Содержание