Определение броузера/платформы посетителя
Misha v.3 [18 октября 2005]
Иногда требуется выполнять какие-либо действия, различные для разных броузеров. В этом случае требуется определить, каким броузером и с какой платформы пришел посетитель.
Самый простой способ сделать это — проанализировать значение переменной окружения $env:HTTP_USER_AGENT.
Класс detect имеет два статических метода (os и agent), которые анализируют переданную им строку с HTTP_USER_AGENT и возвращают хеши, в которых содержится информация о броузере или платформе.
Пример использования класса detect:
@main[]
^use[Detect.p]
$hPlatform[^Detect:os[$env:HTTP_USER_AGENT]]
$hBrowser[^Detect:agent[$env:HTTP_USER_AGENT]]
OS: $hPlatform.name<br />
Browser: $hBrowser.name ${hBrowser.ver}.${hBrowser.subver}
Скачать класс:
Detect.zip
(29.03.2007
570 байт)
Архив файла с классом Detect
Древний оператор implode, который в сущности делает тоже самое, только сбоку. При вызове он записывает в глобальные переменные $MAIN:browser, $MAIN:browser_ver, $MAIN:browser_subver и $MAIN:platform информацию о броузере и платформе посетителя, откуда её потом можно достать.
Пример использования оператора implode:
@main[]
^use[implode.p]
^detectBrowser[]
OS: $MAIN:platform<br />
Browser: $MAIN:browser ${MAIN:browser_ver}.${MAIN:browser_subver}
Скачать:
implode.zip
(03.12.2002
480 байт)
Архив файла с оператором implode
Следует заметить, что следует стараться всячески избегать использования этих методов и выдавать одинаковый и универсальный html для всех броузеров, а подобные проверки осуществлять на стороне броузера средствами javascript.