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.