Давайте сделаем что-нибудь полезное. К примеру, определим, какой браузер использует тот, кто смотрит в данный момент нашу страницу. Для этого мы проверим строку с именем браузера, посылаемую нам в HTTP-запросе. Эта информация хранится в переменной. Интересующая нас переменная называется _SERVER["HTTP_USER_AGENT"].

Вывод браузера

<!DOCTYPE html>
<html>
 <head>
  <title>Show user agent in ObjectScript</title>
 </head>
 <body>
 <p><% echo _SERVER["HTTP_USER_AGENT"] %></p>
 <p>
    Browser:
    <%
        var userAgent = _SERVER["HTTP_USER_AGENT"].lower()
        if(userAgent.find("firefox/")){
            echo "Firefox"
        }else if(userAgent.find("opera/") || userAgent.find("opr/")){
            echo "Opera"
        }else if(userAgent.find("chrome/")){
            echo "Chrome"
        }else if(userAgent.find("safari/")){
            echo "Safari"
        }else if(userAgent.find("iphone/")){
            echo "Iphone"
        }else if(userAgent.find("applewebkit/")){
            echo "AppleWebKit"
        }else if(userAgent.find("msie ")){
            echo "MSIE"
        }else{
            echo "Not detected"
        }
    %>
 </p>
 </body>
</html>

_SERVER - глобальная переменная OS, которая содержит всю информацию, полученную от веб-сервера.

Пример вывода данной программы:

Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 Chrome/25.0.1364.172

Browser: Chrome

Здесь мы познакомились с несколькими новыми элементами. Во-первых, здесь есть конструкция if. Если вы знакомы с основами синтаксиса языка C++, то вы уже заметили схожие моменты. Кроме этого, здесь присутствует вызовы функций lower и find. lower возвращает строку в нижнем регистре. find ищет одну строку в другой. Если она находит вхождение, то возвращает позицию (индекс начинается с нуля), иначе возвращает null.

lower и find - встроенные в ObjectScript функции, они реализованны в классе String.

В ObjectScript преобразование к булеву типу происходит следующим образом: null и false возвращают ложь, все другие значения возвращают истину, включая число 0 и пустую строку "".

С помощью нескольких вызовов find и конструкции if мы определяем, какой браузер использует пользователь, который смотрит нашу страницу. В выше приведенном примере мы распознали, что пользователь использует браузер Chrome.

Fork me on GitHub