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.

Зміст