Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function ua_match($ua){
- if (!empty($ua)) {
- $ua_match = array(
- 'Tizen[ /]?(\d+[\.\d]+)?' => 'Tizen',
- 'Sailfish|Jolla' => 'Sailfish OS',
- '(?:Ali)?YunOS[ /]?(\d+[\.\d]+)?' => 'YunOS',
- 'Windows Phone (?:OS)?[ ]?(\d+[\.\d]+)' => 'Windows Phone',
- 'XBLWP7|Windows Phone' => 'Windows Phone',
- 'Windows CE(?: (\d+[\.\d]+))?' => 'Windows CE',
- '(?:IEMobile|Windows Mobile)(?: (\d+[\.\d]+))?' => 'Windows Mobile',
- 'Windows NT 6.2; ARM;' => 'Windows RT',
- 'Windows NT 6.3; ARM;' => 'Windows RT',
- 'RazoDroiD(?: v(\d+[\.\d]*))?' => 'RazoDroiD',
- 'MildWild(?: CM-(\d+[\.\d]*))?' => 'MildWild',
- 'CyanogenMod(?:[\-/](?:CM)?(\d+[\.\d]*))?' => 'CyanogenMod',
- '(?:.*_)?MocorDroid(?:(\d+[\.\d]*))?' => 'MocorDroid',
- '(?:(?:Orca-)?Android|Adr)[ /](?:[a-z]+ )?(\d+[\.\d]+)' => 'Android',
- 'Android|Silk-Accelerated=[a-z]{4,5}' => 'Android',
- 'BeyondPod|AntennaPod|Podkicker|DoggCatcher' => 'Android',
- 'AmigaOS[ ]?(\d+[\.\d]+)' => 'AmigaOS',
- 'AmigaOS|AmigaVoyager|Amiga-AWeb' => 'AmigaOS',
- 'ThreadX(?:/(\d+[\.\d]*))?' => 'ThreadX',
- 'Nucleus(?:(?: |/v?)(\d+[\.\d]*))?' => 'MTK / Nucleus',
- 'MTK(?:(?: |/v?)(\d+[\.\d]*))?' => 'MTK / Nucleus',
- 'Maemo' => 'Maemo',
- 'Arch ?Linux(?:[ /\-](\d+[\.\d]+))?' => 'Arch Linux',
- 'VectorLinux(?: package)?(?:[ /\-](\d+[\.\d]+))?' => 'VectorLinux',
- 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[\.\d]+)' => '$1',
- '(Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[\.\d]+))?' => '$1',
- '(?:webOS|Palm webOS)(?:/(\d+[\.\d]+))?' => 'webOS',
- '(?:PalmOS|Palm OS)(?:[/ ](\d+[\.\d]+))?|Palm' => 'palmOS',
- 'Xiino(?:.*v\. (\d+[\.\d]+))?' => 'palmOS',
- 'MorphOS(?:[ /](\d+[\.\d]+))?' => 'MorphOS',
- 'CYGWIN_NT-10.0|Windows NT 10.0|Windows 10' => 'Windows',
- 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10' => 'Windows',
- 'CYGWIN_NT-6.3|Windows NT 6.3|Windows 8.1' => 'Windows',
- 'CYGWIN_NT-6.2|Windows NT 6.2|Windows 8' => 'Windows',
- 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7' => 'Windows',
- 'CYGWIN_NT-6.0|Windows NT 6.0|Windows Vista' => 'Windows',
- 'CYGWIN_NT-5.2|Windows NT 5.2|Windows Server 2003 / XP x64' => 'Windows',
- 'CYGWIN_NT-5.1|Windows NT 5.1|Windows XP' => 'Windows',
- 'CYGWIN_NT-5.0|Windows NT 5.0|Windows 2000' => 'Windows',
- 'CYGWIN_NT-4.0|Windows NT 4.0|WinNT|Windows NT' => 'Windows',
- 'CYGWIN_ME-4.90|Win 9x 4.90|Windows ME' => 'Windows',
- 'CYGWIN_98-4.10|Win98|Windows 98' => 'Windows',
- 'CYGWIN_95-4.0|Win32|Win95|Windows 95|Windows_95' => 'Windows',
- 'Windows 3.1' => 'Windows',
- 'Windows' => 'Windows',
- 'CFNetwork/758\.4\.3' => 'iOS',
- 'CFNetwork/758\.3\.15' => 'iOS',
- 'CFNetwork/758\.2\.[78]' => 'iOS',
- 'CFNetwork/758\.1\.6' => 'iOS',
- 'CFNetwork/758\.0\.2' => 'iOS',
- 'CFNetwork/711\.5\.6' => 'iOS',
- 'CFNetwork/711\.4\.6' => 'iOS',
- 'CFNetwork/711\.3\.18' => 'iOS',
- 'CFNetwork/711\.2\.23' => 'iOS',
- 'CFNetwork/711\.1\.1[26]' => 'iOS',
- 'CFNetwork/711\.0\.6' => 'iOS',
- 'CFNetwork/672\.1' => 'iOS',
- 'CFNetwork/672\.0' => 'iOS',
- 'CFNetwork/609\.1' => 'iOS',
- 'CFNetwork/60[29]' => 'iOS',
- 'CFNetwork/548\.1' => 'iOS',
- 'CFNetwork/548\.0' => 'iOS',
- 'CFNetwork/485\.13' => 'iOS',
- 'CFNetwork/485\.12' => 'iOS',
- 'CFNetwork/485\.10' => 'iOS',
- 'CFNetwork/485\.2' => 'iOS',
- 'CFNetwork/467\.12' => 'iOS',
- 'CFNetwork/459' => 'iOS',
- '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)' => 'iOS',
- '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?' => 'iOS',
- 'Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|Overcast|Castro|Podcat|i[cC]atcher' => 'iOS',
- 'iTunes-(iPod|iPad|iPhone)/(?:[\d\.]+)' => 'iOS',
- 'CFNetwork/760' => 'Mac',
- 'CFNetwork/720' => 'Mac',
- 'CFNetwork/673' => 'Mac',
- 'CFNetwork/596' => 'Mac',
- 'CFNetwork/520' => 'Mac',
- 'CFNetwork/454' => 'Mac',
- 'CFNetwork/(?:438|422|339|330|221|220|217)' => 'Mac',
- 'CFNetwork/12[89]' => 'Mac',
- 'CFNetwork/1\.2' => 'Mac',
- 'CFNetwork/1\.1' => 'Mac',
- 'Mac OS X(?: (?:Version )?(\d+(?:[_\.]\d+)+))?' => 'Mac',
- 'Mac (\d+(?:[_\.]\d+)+)' => 'Mac',
- 'Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook' => 'Mac',
- 'CrOS [a-z0-9_]+ (\d+[\.\d]+)' => 'Chrome OS',
- '(?:BB10;.+Version|Black[Bb]erry[0-9a-z]+|Black[Bb]erry.+Version)/(\d+[\.\d]+)' => 'BlackBerry OS',
- 'RIM Tablet OS (\d+[\.\d]+)' => 'BlackBerry Tablet OS',
- 'RIM Tablet OS|QNX|Play[Bb]ook' => 'BlackBerry Tablet OS',
- 'BlackBerry' => 'BlackBerry OS',
- 'Haiku' => 'Haiku OS',
- 'BeOS' => 'BeOS',
- 'Symbian/3.+NokiaBrowser/7\.3' => 'Symbian^3',
- 'Symbian/3.+NokiaBrowser/7\.4' => 'Symbian^3',
- 'Symbian/3' => 'Symbian^3',
- '(?:Series ?60|SymbOS|S60)(?:[ /]?(\d+[\.\d]+|V\d+))?' => 'Symbian OS Series 60',
- 'Series40' => 'Symbian OS Series 40',
- 'SymbianOS/(\d+[\.\d]+)' => 'Symbian OS',
- 'MeeGo|WeTab' => 'MeeGo',
- 'Symbian(?: OS)?|SymbOS' => 'Symbian OS',
- 'Nokia' => 'Symbian',
- '(?:Mobile|Tablet);.+Firefox/\d+\.\d+' => 'Firefox OS',
- 'RISC OS(?:-NC)?(?:[ /](\d+[\.\d]+))?' => 'RISC OS',
- 'Inferno(?:[ /](\d+[\.\d]+))?' => 'Inferno',
- 'bada(?:[ /](\d+[\.\d]+))' => 'Bada',
- 'bada' => 'Bada',
- '(?:Brew MP|BREW|BMP)(?:[ /](\d+[\.\d]+))' => 'Brew',
- 'Brew MP|BREW|BMP' => 'Brew',
- 'GoogleTV(?:[ /](\d+[\.\d]+))?' => 'Google TV',
- 'AppleTV(?:/?(\d+[\.\d]+))?' => 'Apple TV',
- 'WebTV/(\d+[\.\d]+)' => 'WebTV',
- 'RemixOS 5.1.1' => 'Remix OS',
- 'RemixOS 6.0' => 'Remix OS',
- 'RemixOS' => 'Remix OS',
- '(?:SunOS|Solaris)(?:[/ ](\d+[\.\d]+))?' => 'Solaris',
- 'AIX(?:[/ ]?(\d+[\.\d]+))?' => 'AIX',
- 'HP-UX(?:[/ ]?(\d+[\.\d]+))?' => 'HP-UX',
- 'FreeBSD(?:[/ ]?(\d+[\.\d]+))?' => 'FreeBSD',
- 'NetBSD(?:[/ ]?(\d+[\.\d]+))?' => 'NetBSD',
- 'OpenBSD(?:[/ ]?(\d+[\.\d]+))?' => 'OpenBSD',
- 'DragonFly(?:[/ ]?(\d+[\.\d]+))?' => 'DragonFly',
- 'Syllable(?:[/ ]?(\d+[\.\d]+))?' => 'Syllable',
- 'IRIX(?:;64)?(?:[/ ]?(\d+[\.\d]+))' => 'IRIX',
- 'OSF1(?:[/ ]?v?(\d+[\.\d]+))?' => 'OSF1',
- 'Nintendo Wii' => 'Nintendo',
- 'PlayStation ?([3|4])' => 'PlayStation',
- 'Xbox|KIN\.(?:One|Two)' => 'Xbox',
- 'Nitro|Nintendo ([3]?DS[i]?)' => 'Nintendo Mobile',
- 'PlayStation ((?:Portable|Vita))' => 'PlayStation Portable',
- 'OS/2' => 'OS/2',
- 'Linux(?:OS)?[^a-z]' => 'GNU/Linux',
- );
- foreach (array_keys($ua_match) as $k) {
- if (preg_match('/' . $k . '/s', $ua, $matches)) {
- return ($matches[0]);
- exit;
- }
- }
- return '';
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement