Как настроить PHP для работы с get_browser (browscap.ini) в Windows

Функция get_browser выводит информацию о возможностях веб-браузера, основываясь на полученной строке User Agent. К примеру: поддерживает ли данный веб-браузер JavaScript, какую версию CSS поддерживает, поддерживает ли iframes и frames, умеет ли работать с кукиз и отображать таблицы, работает ли на устройствах с сенсорным экраном и так далее.

При этом помните, что если вам всего лишь нужно получить User Agent пользователя (соответствующее значение заголовка HTTP), то вам не нужна функция get_browser, вам достаточно использовать соответствующую переменную:

$_SERVER['HTTP_USER_AGENT']

Подробности в статье «Как получить User Agent в PHP. Как настроить browscap.ini».

Итак, если вам всё же нужна функция get_browser на веб-сервере в Windows, то вам необходимо настроить PHP для работы со справочным файлом (фактически, база данных) browscap.ini. Этот файл и содержит подробную информацию о веб-браузерах. Пока не будет прописан путь до этого файла, невозможно использовать функцию get_browser.

К примеру, код:

<?php

$browser = get_browser(null, true);
print_r($browser);

Будет ничего не выведет кроме предупреждения:

Warning: get_browser(): browscap ini directive not set in C:\Server\data\htdocs\ua.php on line 3

Как настроить browscap.ini

Требуется скачать данный файл с перечнем свойств веб-браузера и указать путь до него в php.ini (главном конфигурационном файле PHP).

Эти файлы размещены на сайте http://browscap.org/. Всего для PHP имеется 3 варианта:

  • php_browscap.ini (17,095 KB). Стандартная версия файла, довольно полная.
  • full_php_browscap.ini (85,513 KB). Самая большая версия файла со всеми возможными свойствами.
  • lite_php_browscap.ini (463 KB). Облегчённый вариант, содержит основные браузеры и поисковые движки. Этот файл вполне подойдёт для большинства веб-сайтов.

Итак, скачайте один из этих файлов — тот, который больше подходит под ваши нужды.

Для примера я скачал файл full_php_browscap.ini. Переименуйте скаченный файл в browscap.ini.

У меня веб-сервер на Windows установлен по этой инструкции. Если вы устанавливали другим образом или используете готовую сборку WAPM, то отредактируйте пути до файлов — но суть всегда будет одна и та же.

Переместите скаченный и переименованный файл browscap.ini в папку C:/Server/bin/PHP/.

Теперь откройте файл C:/Server/bin/PHP/php.ini и найдите там секцию:

[browscap]
; http://php.net/browscap
;browscap = extra/browscap.ini

и замените её на:

[browscap]
browscap = C:/Server/bin/PHP/browscap.ini

Чтобы изменения вступили в силу, перезапустите веб-сервер:

c:\Server\bin\Apache24\bin\httpd.exe -k restart

Теперь использование функции get_browser() не будет вызывать ошибку:

<?php
$browser = get_browser(null, true);
print_r($browser);

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *