PHP

Определения браузера

Определения браузера

Иногда, (в данной ситуации у меня возникла необходимость) нужно вывести картинку или любой тег в зависимости от браузера. В данный момент мне нужно было вывести в IE6 картинку без тени. Можно было именно для ослика 6 написать, но написал более расширенный сниппет, может кому пригодиться.

Допустим хотим вывести картинку logo.png, а если IE6 то logo_ie6.png.

src="/static/img/[[!browser:isequalto=`IE 6.0`:then=`logo_ie6.png`:else=`logo.png`]]"

и сам снипет browser

/*  Браузер             Результат полной функции        Результат сокращённой функции
Firefox 1.5.0.12        Firefox 1.5.0.12                Firefox 1.5.0.12
Firefox 3.0.10          Firefox 3.0.10                  Firefox 3.0.10
Firefox 3.6.9           Firefox 3.6.9                   Firefox 3.6.9
Firefox 4.0             Firefox 4.0                     Firefox 4.0
IE 4.01                 IE 4.01                         MSIE 4.01
IE 5.5                  IE 5.5                          MSIE 5.5
IE 6.0                  IE 6.0                          MSIE 6.0
IE 7.0                  IE 7.0                          MSIE 7.0
IE 8.0                  IE 8.0                          MSIE 8.0
Chrome 5.0.375.127      Chrome 5.0.375.127              Chrome 5.0.375.127
Chromium 6.0.472.36     Chrome 6.0.472.36               Chrome 6.0.472.36
Chrome 7.0.517.8        Chrome 7.0.517.8                Chrome 7.0.517.8
Opera 7.03              Opera 7.03                      MSIE 6.0
Opera 8.0               Opera 8.0                       MSIE 6.0
Opera 8.54              Opera 8.54                      Opera 8.54
Opera 9.50              Opera 9.50                      Opera 9.50
Opera 10.00             Opera 10.00                     Opera 10.00
Opera 10.10             Opera 10.10                     Opera 10.10
Opera 10.61             Opera 10.61                     Opera 10.61
Safari 3.0              Safari 3.0                      Safari 3.0
Safari 4.0              Safari 4.0                      Safari 4.0
Safari 5.0.1            Safari 5.0.1                    Safari 5.0.1
Flock 1.2.6             Flock 1.2.6                     Firefox 2.0.0.17
Epiphany 2.22           Epiphany 2.22                   Firefox 2.0.0.20
Navigator 9.0.0.6       Navigator 9.0.0.6               Firefox 2.0.0.12
Netscape 8.1.3          Netscape 8.1.3                  Browser based on Gecko
Konqueror 4.4           Konqueror 4.4                   Browser based on Gecko
Galeon 2.0.4            Browser based on Gecko          Browser based on Gecko
Iceape 1.1.13           Browser based on Gecko          Browser based on Gecko
Iceweasel 3.0.4         Iceweasel 3.0.4                 Browser based on Gecko
SeaMonkey 1.1.14        SeaMonkey 1.1.14                Browser based on Gecko
Minefield 3.7           Minefield 3.7                   Browser based on Gecko
Avant Browser 7.0       Avant Browser based on IE 7.0   MSIE 7.0
Camino 2.0.4            Camino 2.0.4                    Firefox 3.0.19
*/
function user_browser($agent) {
        preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info);
        list(,$browser,$version) = $browser_info;
        if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1];
        if ($browser == 'MSIE') {
                preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie);
                if ($ie) return $ie[1].' based on IE '.$version;
                return 'IE '.$version;
        }
    if ($browser == 'Firefox') {
                preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff);
                if ($ff) return $ff[1].' '.$ff[2];
        }
        if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5);
        if ($browser == 'Version') return 'Safari '.$version;
        if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko';
        return $browser.' '.$version;
}

function user_min_browser($agent) {
        preg_match("/(MSIE|Opera|Firefox|Chrome|Version)(?:\/| )([0-9.]+)/", $agent, $browser_info);
        list(,$browser,$version) = $browser_info;
        if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5);
        if ($browser == 'Version') return 'Safari '.$version;
        if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko';
        return $browser.' '.$version;
}
return user_browser($_SERVER['HTTP_USER_AGENT']);

Чтобы посмотреть как сниппет определит ваш браузер, вызовите его на странице без дополнительных параметров:

[[!browser]]
Valentin Rasulov

Комментариев нет

Чтобы оставить комментарий необходимо авторизоваться