php获取客户端浏览器及操作系统信息
由 user-agent 及 映射关系 准确获取客户端操作系统和浏览器信息,恩,重点在于完整的映射关系。
1. 获取
1 <?php 2 /** 3 * 从 user-agent 通过映射关系获取 操作系统信息 4 */ 5 function _getclientoperation_for_userauth($_useragent){ 6 if(!empty($_useragent)){ 7 $ua = strtolower($_useragent); 8 $operation_map = array(); 9 @include_once './data/sysdata/info_op.php'; 10 11 foreach ($operation_map as $name => $alias_excludes){ 12 if(isset($alias_excludes['alias']) && is_array($alias_excludes['alias']) && sizeof($alias_excludes['alias'])>0){ 13 foreach ($alias_excludes['alias'] as $a) { 14 $a = strtolower($a); 15 $_a_pos = strpos($ua, $a); 16 $_ex_pos = false; 17 if ($_a_pos !== false) { 18 if (isset($alias_excludes['excludes']) && is_array($alias_excludes['excludes']) && sizeof($alias_excludes['excludes']) > 0) { 19 foreach ($alias_excludes['excludes'] as $ex) { 20 $ex = strtolower($ex); 21 $_ex_pos = strpos($ua, $ex); 22 } 23 } 24 if(isset($_a_pos) && isset($_ex_pos) && $_a_pos!==false && $_ex_pos===false){ 25 return $name; 26 } 27 } 28 } 29 } 30 } 31 } 32 return false; 33 } 34 35 /** 36 * 从 user-agent 通过映射关系获取 浏览器信息 37 */ 38 function _getclientbrowser_for_userauth($_useragent){ 39 if(!empty($_useragent)){ 40 $ua = strtolower($_useragent); 41 $browser_map = array(); 42 @include_once './data/sysdata/info_bws.php'; 43 44 foreach ($browser_map as $name => $alias_excludes){ 45 if(isset($alias_excludes['alias']) && is_array($alias_excludes['alias']) && sizeof($alias_excludes['alias'])>0){ 46 foreach ($alias_excludes['alias'] as $a){ 47 $a = strtolower($a); 48 $_a_pos = strpos($ua, $a); 49 $_ex_pos = false; 50 if ($_a_pos !== false) { 51 if (isset($alias_excludes['excludes']) && is_array($alias_excludes['excludes']) && sizeof($alias_excludes['excludes']) > 0) { 52 foreach ($alias_excludes['excludes'] as $ex) { 53 $ex = strtolower($ex); 54 $_ex_pos = strpos($ua, $ex); 55 } 56 } 57 if(isset($_a_pos) && isset($_ex_pos) && $_a_pos!==false && $_ex_pos===false){ 58 return $name; 59 } 60 } 61 } 62 } 63 } 64 } 65 return false; 66 }
2. info_op.php 文件内容
1 <?php 2 /** 3 * 操作系统信息映射关系 4 * name => (alias, exlcudes) 5 * name 操作系统信息,alias 别名,excludes 不能包含的信息 6 */ 7 $operation_map = array( 8 'Windows 10' => array( 9 'alias'=>array('Windows NT 6.4', 'Windows NT 10'), 10 'excludes'=>array() 11 ), 12 'Windows 8.1' => array( 13 'alias'=>array('Windows NT 6.3'), 14 'excludes'=>array() 15 ), 16 'Windows 8' => array( 17 'alias'=>array('Windows NT 6.2'), 18 'excludes'=>array('Xbox', 'Xbox One') 19 ), 20 'Windows 7' => array( 21 'alias'=>array('Windows NT 6.1'), 22 'excludes'=>array('Xbox', 'Xbox One') 23 ), 24 'Windows Vista' => array( 25 'alias'=>array('Windows NT 6'), 26 'excludes'=>array('Xbox', 'Xbox One') 27 ), 28 'Windows 2000' => array( 29 'alias'=>array('Windows NT 5.0'), 30 'excludes'=>array() 31 ), 32 'Windows XP' => array( 33 'alias'=>array('Windows NT 5'), 34 'excludes'=>array('ggpht.com') 35 ), 36 'Windows 10 Mobile' => array( 37 'alias'=>array('Windows Phone 10'), 38 'excludes'=>array() 39 ), 40 'Windows Phone 8.1' => array( 41 'alias'=>array('Windows Phone 8.1'), 42 'excludes'=>array() 43 ), 44 'Windows Phone 8' => array( 45 'alias'=>array('Windows Phone 8'), 46 'excludes'=>array() 47 ), 48 'Windows Phone 7' => array( 49 'alias'=>array('Windows Phone OS 7'), 50 'excludes'=>array() 51 ), 52 'Windows Mobile' => array( 53 'alias'=>array('Windows CE'), 54 'excludes'=>array() 55 ), 56 'Windows 98' => array( 57 'alias'=>array('Windows 98', 'Win98'), 58 'excludes'=>array('Palm') 59 ), 60 'Xbox OS' => array( 61 'alias'=>array('xbox'), 62 'excludes'=>array() 63 ), 64 'Windows' => array( 65 'alias'=>array('Windows'), 66 'excludes'=>array('Palm', 'ggpht.com') 67 ), 68 'Android 6.x' => array( 69 'alias'=>array('Android 6', 'Android-6'), 70 'excludes'=>array('glass') 71 ), 72 'Android 6.x Tablet' => array( 73 'alias'=>array('Android 6', 'Android-6'), 74 'excludes'=>array('mobile', 'glass') 75 ), 76 'Android 5.x' => array( 77 'alias'=>array('Android 5', 'Android-5'), 78 'excludes'=>array('glass') 79 ), 80 'Android 5.x Tablet' => array( 81 'alias'=>array('Android 5', 'Android-5'), 82 'excludes'=>array('mobile', 'glass') 83 ), 84 'Android 4.x' => array( 85 'alias'=>array('Android 4', 'Android-4'), 86 'excludes'=>array('glass', 'ubuntu') 87 ), 88 'Android 4.x Tablet' => array( 89 'alias'=>array('Android 4', 'Android-4'), 90 'excludes'=>array('mobile', 'glass', 'ubuntu') 91 ), 92 'Android 4.x' => array( 93 'alias'=>array('Android 4'), 94 'excludes'=>array('ubuntu') 95 ), 96 'Android 3.x Tablet' => array( 97 'alias'=>array('Android 3'), 98 'excludes'=>array() 99 ), 100 'Android 2.x' => array( 101 'alias'=>array('Android 2'), 102 'excludes'=>array() 103 ), 104 'Android 2.x Tablet' => array( 105 'alias'=>array('Kindle Fire', 'GT-P1000', 'SCH-I800'), 106 'excludes'=>array() 107 ), 108 'Android 1.x' => array( 109 'alias'=>array('Android 1'), 110 'excludes'=>array() 111 ), 112 'Android Mobile' => array( 113 'alias'=>array('Mobile'), 114 'excludes'=>array('ubuntu') 115 ), 116 'Android Tablet' => array( 117 'alias'=>array('Tablet'), 118 'excludes'=>array() 119 ), 120 'Android' => array( 121 'alias'=>array('Android'), 122 'excludes'=>array('Ubuntu') 123 ), 124 'Chrome OS' => array( 125 'alias'=>array('CrOS'), 126 'excludes'=>array() 127 ), 128 'WebOS' => array( 129 'alias'=>array('webOS'), 130 'excludes'=>array() 131 ), 132 'PalmOS'=>array( 133 'alias'=>array('Palm'), 134 'excludes'=>array() 135 ), 136 'MeeGo' => array( 137 'alias'=>array('MeeGo'), 138 'excludes'=>array() 139 ), 140 'iOS 9 (iPhone)' => array( 141 'alias'=>array('iPhone OS 9'), 142 'excludes'=>array() 143 ), 144 'iOS 8.4 (iPhone)' => array( 145 'alias'=>array('iPhone OS 8_4'), 146 'excludes'=>array() 147 ), 148 'iOS 8.3 (iPhone)' => array( 149 'alias'=>array('iPhone OS 8_3'), 150 'excludes'=>array() 151 ), 152 'iOS 8.2 (iPhone)' => array( 153 'alias'=>array('iPhone OS 8_2'), 154 'excludes'=>array() 155 ), 156 'iOS 8.1 (iPhone)' => array( 157 'alias'=>array('iPhone OS 8_1'), 158 'excludes'=>array() 159 ), 160 'iOS 8 (iPhone)' => array( 161 'alias'=>array('iPhone OS 8'), 162 'excludes'=>array() 163 ), 164 'iOS 7 (iPhone)' => array( 165 'alias'=>array('iPhone OS 7'), 166 'excludes'=>array() 167 ), 168 'iOS 6 (iPhone)' => array( 169 'alias'=>array('iPhone OS 6'), 170 'excludes'=>array() 171 ), 172 'iOS 5 (iPhone)' => array( 173 'alias'=>array('iPhone OS 5'), 174 'excludes'=>array() 175 ), 176 'iOS 4 (iPhone)' => array( 177 'alias'=>array('iPhone OS 4'), 178 'excludes'=>array() 179 ), 180 'iOS 9 (iPad)' => array( 181 'alias'=>array('OS 9'), 182 'excludes'=>array() 183 ), 184 'iOS 8.4 (iPad)' => array( 185 'alias'=>array('OS 8_4'), 186 'excludes'=>array() 187 ), 188 'iOS 8.3 (iPad)' => array( 189 'alias'=>array('OS 8_3'), 190 'excludes'=>array() 191 ), 192 'iOS 8.2 (iPad)' => array( 193 'alias'=>array('OS 8_2'), 194 'excludes'=>array() 195 ), 196 'iOS 8.1 (iPad)' => array( 197 'alias'=>array('OS 8_1'), 198 'excludes'=>array() 199 ), 200 'iOS 8 (iPad)' => array( 201 'alias'=>array('OS 8_0'), 202 'excludes'=>array() 203 ), 204 'iOS 7 (iPad)' => array( 205 'alias'=>array('OS 7'), 206 'excludes'=>array() 207 ), 208 'iOS 6 (iPad)' => array( 209 'alias'=>array('OS 6'), 210 'excludes'=>array() 211 ), 212 'Mac OS X (iPad)' => array( 213 'alias'=>array('iPad'), 214 'excludes'=>array() 215 ), 216 'Mac OS X (iPhone)' => array( 217 'alias'=>array('iPhone'), 218 'excludes'=>array() 219 ), 220 'Mac OS X (iPod)' => array( 221 'alias'=>array('iPod'), 222 'excludes'=>array() 223 ), 224 'iOS' => array( 225 'alias'=>array('iPhone OS', 'like Mac OS X'), 226 'excludes'=>array() 227 ), 228 'Mac OS X' => array( 229 'alias'=>array('Mac OS X', 'CFNetwork'), 230 'excludes'=>array() 231 ), 232 'Mac OS' => array( 233 'alias'=>array('Mac'), 234 'excludes'=>array() 235 ), 236 'Maemo' => array( 237 'alias'=>array('Maemo'), 238 'excludes'=>array() 239 ), 240 'Bada' => array( 241 'alias'=>array('Bada'), 242 'excludes'=>array() 243 ), 244 'Android (Google TV)' => array( 245 'alias'=>array('GoogleTV'), 246 'excludes'=>array() 247 ), 248 'Linux (Kindle 3)' => array( 249 'alias'=>array('Kindle/3'), 250 'excludes'=>array() 251 ), 252 'Linux (Kindle 2)' => array( 253 'alias'=>array('Kindle/2'), 254 'excludes'=>array() 255 ), 256 'Linux (Kindle)' => array( 257 'alias'=>array('Kindle'), 258 'excludes'=>array() 259 ), 260 'Ubuntu' => array( 261 'alias'=>array('ubuntu'), 262 'excludes'=>array() 263 ), 264 'Ubuntu Touch (mobile)' => array( 265 'alias'=>array('mobile'), 266 'excludes'=>array() 267 ), 268 'Linux' => array( 269 'alias'=>array('Linux', 'CamelHttpStream'), 270 'excludes'=>array() 271 ), 272 'Symbian OS 9.x' => array( 273 'alias'=>array('SymbianOS/9', 'Series60/3'), 274 'excludes'=>array() 275 ), 276 'Symbian OS 8.x' => array( 277 'alias'=>array('SymbianOS/8', 'Series60/2.6', 'Series60/2.8'), 278 'excludes'=>array() 279 ), 280 'Symbian OS 7.x' => array( 281 'alias'=>array('SymbianOS/7'), 282 'excludes'=>array() 283 ), 284 'Symbian OS 6.x' => array( 285 'alias'=>array('SymbianOS/6'), 286 'excludes'=>array() 287 ), 288 'Symbian OS' => array( 289 'alias'=>array('Symbian', 'Series60'), 290 'excludes'=>array() 291 ), 292 'Series 40' => array( 293 'alias'=>array('Nokia6300'), 294 'excludes'=>array() 295 ), 296 'Sony Ericsson' => array( 297 'alias'=>array('SonyEricsson'), 298 'excludes'=>array() 299 ), 300 'SunOS' => array( 301 'alias'=>array('SunOS'), 302 'excludes'=>array() 303 ), 304 'Sony Playstation' => array( 305 'alias'=>array('Playstation'), 306 'excludes'=>array() 307 ), 308 'Nintendo Wii' => array( 309 'alias'=>array('Wii'), 310 'excludes'=>array() 311 ), 312 'BlackBerry 7' => array( 313 'alias'=>array('Version/7'), 314 'excludes'=>array() 315 ), 316 'BlackBerry 6' => array( 317 'alias'=>array('Version/6'), 318 'excludes'=>array() 319 ), 320 'BlackBerry Tablet OS' => array( 321 'alias'=>array('RIM Tablet OS'), 322 'excludes'=>array() 323 ), 324 'BlackBerryOS' => array( 325 'alias'=>array('BlackBerry'), 326 'excludes'=>array() 327 ), 328 'Roku OS' => array( 329 'alias'=>array('Roku'), 330 'excludes'=>array() 331 ), 332 'Proxy' => array( 333 'alias'=>array('ggpht.com'), 334 'exclludes'=>array() 335 ), 336 'Unknown mobile' => array( 337 'alias'=>array('Mobile'), 338 'excludes'=>array() 339 ), 340 'Unknown tablet' => array( 341 'alias'=>array('Tablet'), 342 'excludes'=>array() 343 ), 344 'Unknown' => array( 345 'alias'=>array(), 346 'excludes'=>array() 347 ) 348 );
3. info_bws.php 文件内容
<?php /** * 浏览器信息映射关系 * name => (alias, exlcudes) * name 浏览器信息,alias 别名,excludes 不能包含的信息 */ $browser_map = array( 'Outlook 2007' => array( 'alias'=>array('MSOffice 12'), 'excludes'=>array() ), 'Outlook 2013' => array( 'alias'=>array('Microsoft Outlook 15'), 'excludes'=>array() ), 'Outlook 2010' => array( 'alias'=>array('MSOffice 14', 'Microsoft Outlook 14'), 'excludes'=>array() ), 'Outlook' => array( 'alias'=>array('MSOffice'), 'excludes'=>array() ), 'Windows Live Mail' => array( 'alias'=>array('Outlook-Express/7.0'), 'excludes'=>array() ), 'IE Mobile 11' => array( 'alias'=>array('IEMobile/11'), 'excludes'=>array() ), 'IE Mobile 10' => array( 'alias'=>array('IEMobile/10'), 'excludes'=>array() ), 'IE Mobile 9' => array( 'alias'=>array('IEMobile/9'), 'excludes'=>array() ), 'IE Mobile 7' => array( 'alias'=>array('IEMobile 7'), 'excludes'=>array() ), 'IE Mobile 6' => array( 'alias'=>array('IEMobile 6'), 'excludes'=>array() ), 'Xbox' => array( 'alias'=>array('xbox'), 'excludes'=>array() ), 'Internet Explorer 11' => array( 'alias'=>array('Trident/7', 'IE 11.'), 'excludes'=>array('MSIE 7', 'BingPreview') ), 'Internet Explorer 10' => array( 'alias'=>array('MSIE 10'), 'excludes'=>array() ), 'Internet Explorer 9' => array( 'alias'=>array('MSIE 9'), 'excludes'=>array() ), 'Internet Explorer 8' => array( 'alias'=>array('MSIE 8'), 'excludes'=>array() ), 'Internet Explorer 7' => array( 'alias'=>array('MSIE 7'), 'excludes'=>array() ), 'Internet Explorer 6' =>array( 'alias'=>array('MSIE 6'), 'excludes'=>array() ), 'Internet Explorer 5.5' => array( 'alias'=>array('MSIE 5.5'), 'excludes'=>array() ), 'Internet Explorer 5' => array( 'alias'=>array('MSIE 5'), 'excludes'=>array() ), 'Internet Explorer' => array( 'alias'=>array('MSIE', 'Trident', 'IE '), 'excludes'=>array('BingPreview', 'Xbox', 'Xbox One') ), 'Microsoft Edge Mobile' => array( 'alias'=>array('Mobile Safari'), 'excludes'=>array() ), 'Microsoft Edge Mobile 12' => array( 'alias'=>array('Mobile Safari', 'Edge/12'), 'excludes'=>array() ), 'Microsoft Edge 13' => array( 'alias'=>array('Edge/13'), 'excludes'=>array('Mobile') ), 'Microsoft Edge 12' => array( 'alias'=>array('Edge/12'), 'excludes'=>array('Mobile') ), 'Microsoft Edge' => array( 'alias'=>array('Edge'), 'excludes'=>array() ), 'Chrome Mobile' => array( 'alias'=>array('CrMo', 'CriOS', 'Mobile Safari'), 'excludes'=>array('OPR/') ), 'Chrome 49' => array( 'alias'=>array('Chrome/49'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 48' => array( 'alias'=>array('Chrome/48'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 47' => array( 'alias'=>array('Chrome/47'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 46' => array( 'alias'=>array('Chrome/46'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 45' => array( 'alias'=>array('Chrome/45'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 44' => array( 'allias'=>array('Chrome/44'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 43' => array( 'alias'=>array('Chrome/43'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 42' => array( 'alias'=>array('Chrome/42'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 41' => array( 'alias'=>array('Chrome/41'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 40' => array( 'alias'=>array('Chrome/40'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Chrome 39' => array( 'alias'=>array('Chrome/39'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 38' => array( 'alias'=>array('Chrome/38'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 37' => array( 'alias'=>array('Chrome/37'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 36' => array( 'alias'=>array('Chrome/36'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 35' => array( 'alias'=>array('Chrome/35'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 34' => array( 'alias'=>array('Chrome/34'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 33' => array( 'alias'=>array('Chrome/33'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 32' => array( 'alias'=>('Chrome/32'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 31' => array( 'alias'=>array('Chrome/31'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 30' => array( 'alias'=>array('Chrome/30'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 29' => array( 'alias'=>array('Chrome/29'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 28' => array( 'alias'=>array('Chrome/28'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 27' => array( 'alias'=>array('Chrome/27'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 26' => array( 'alias'=>array('Chrome/26'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 25' => array( 'alias'=>array('Chrome/25'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 24' => array( 'alias'=>array('Chrome/24'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 23' => array( 'alias'=>array('Chrome/23'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 22' => array( 'alias'=>array('Chrome/22'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 21' => array( 'alias'=>array('Chrome/21'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 20' => array( 'alias'=>array('Chrome/20'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 19' => array( 'alias'=>array('Chrome/19'), 'excludes'=>array('OPR/', 'Web Preview') ), 'Chrome 18' => array( 'alias'=>array('Chrome/18'), 'excludes'=>array() ), 'Chrome 17' => array( 'alias'=>array('Chrome/17'), 'excludes'=>array() ), 'Chrome 16' => array( 'alias'=>array('Chrome/16'), 'excludes'=>array() ), 'Chrome 15' => array( 'alias'=>array('Chrome/15'), 'excludes'=>array() ), 'Chrome 14' => array( 'alias'=>array('Chrome/14'), 'excludes'=>array() ), 'Chrome 13' => array( 'alias'=>array('Chrome/13'), 'excludes'=>array() ), 'Chrome 12' => array( 'alias'=>array('Chrome/12'), 'excludes'=>array() ), 'Chrome 11' => array( 'alias'=>array('Chrome/11'), 'excludes'=>array() ), 'Chrome 10' => array( 'alias'=>array('Chrome/10'), 'excludes'=>array() ), 'Chrome 9' => array( 'alias'=>array('Chrome/9'), 'excludes'=>array() ), 'Chrome 8' => array( 'alias'=>array('Chrome/8'), 'excludes'=>array() ), 'Chrome' => array( 'alias'=>array('Chrome', 'CrMo', 'CriOS'), 'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi') ), 'Omniweb' => array( 'alias'=>array('OmniWeb'), 'excludes'=>array() ), 'Firefox 3 Mobile' => array( 'alias'=>array('Firefox/3.5 Maemo'), 'excludes'=>array() ), 'Firefox Mobile' => array( 'alias'=>array('Mobile'), 'excludes'=>array() ), 'Firefox Mobile 23' => array( 'alias'=>array('Firefox/23'), 'excludes'=>array() ), 'Firefox Mobile (iOS)' => array( 'alias'=>array('FxiOS'), 'excludes'=>array() ), 'Firefox 45' => array( 'alias'=>array('Firefox/45'), 'excludes'=>array() ), 'Firefox 44'=> array( 'alias'=>array('Firefox/44'), 'excludes'=>array() ), 'Firefox 43' => array( 'alias'=>array('Firefox/43'), 'excludes'=>array() ), 'Firefox 42' => array( 'alias'=>array('Firefox/42'), 'excludes'=>array() ), 'Firefox 41' => array( 'alias'=>array('Firefox/41'), 'excludes'=>array() ), 'Firefox 40' => array( 'alias'=>array('Firefox/40'), 'excludes'=>array() ), 'Firefox 39' => array( 'alias'=>array('Firefox/39'), 'excludes'=>array() ), 'Firefox 38' => array( 'alias'=>array('Firefox/38'), 'excludes'=>array() ), 'Firefox 37' => array( 'alias'=>array('Firefox/37'), 'excludes'=>array() ), 'Firefox 36' => array( 'alias'=>array('Firefox/36'), 'excludes'=>array() ), 'Firefox 35' => array( 'alias'=>array('Firefox/35'), 'excludes'=>array() ), 'Firefox 34' => array( 'alias'=>array('Firefox/34'), 'excludes'=>array() ), 'Firefox 33' => array( 'alias'=>array('Firefox/33'), 'excludes'=>array() ), 'Firefox 32' => array( 'alias'=>array('Firefox/32'), 'excludes'=>array() ), 'Firefox 31' => array( 'alias'=>array('Firefox/31'), 'excludes'=>array() ), 'Firefox 30' => array( 'alias'=>array('Firefox/30'), 'excludes'=>array() ), 'Firefox 29' => array( 'alias'=>array('Firefox/29'), 'excludes'=>array() ), 'Firefox 28' => array( 'alias'=>array('Firefox/28'), 'excludes'=>array() ), 'Firefox 27' => array( 'alias'=>array('Firefox/27'), 'excludes'=>array() ), 'Firefox 26' => array( 'alias'=>array('Firefox/26'), 'excludes'=>array() ), 'Firefox 25' => array( 'alias'=>array('Firefox/25'), 'excludes'=>array() ), 'Firefox 24' => array( 'alias'=>array('Firefox/24'), 'excludes'=>array() ), 'Firefox 23' => array( 'alias'=>array('Firefox/23'), 'excludes'=>array() ), 'Firefox 22' => array( 'alias'=>array('Firefox/22'), 'excludes'=>array() ), 'Firefox 21' => array( 'alias'=>array('Firefox/21'), 'excludes'=>array('WordPress.com mShots') ), 'Firefox 20' => array( 'alias'=>array('Firefox/20'), 'excludes'=>array() ), 'Firefox 19' => array( 'alias'=>array('Firefox/19'), 'excludes'=>array() ),'Firefox 18' => array( 'alias'=>array('Firefox/18'), 'excludes'=>array() ), 'Firefox 17' => array( 'alias'=>array('Firefox/17'), 'excludes'=>array() ), 'Firefox 16' => array( 'alias'=>array('Firefox/16'), 'excludes'=>array() ), 'Firefox 15' => array( 'alias'=>array('Firefox/15'), 'excludes'=>array() ), 'Firefox 14' => array( 'alias'=>array('Firefox/14'), 'excludes'=>array() ), 'Firefox 13' => array( 'alias'=>array('Firefox/13'), 'excludes'=>array() ), 'Firefox 12' => array( 'alias'=>array('Firefox/12'), 'excludes'=>array() ), 'Firefox 11' => array( 'alias'=>array('Firefox/11'), 'excludes'=>array() ), 'Firefox 10' => array( 'alias'=>array('Firefox/10'), 'excludes'=>array() ), 'Firefox 9' => array( 'alias'=>array('Firefox/9'), 'excludes'=>array() ), 'Firefox 8' => array( 'alias'=>array('Firefox/8'), 'excludes'=>array() ), 'Firefox 7' => array( 'alias'=>array('Firefox/7'), 'excludes'=>array() ), 'Firefox 6' => array( 'alias'=>array('Firefox/6.'), 'excludes'=>array() ), 'Firefox 5' => array( 'alias'=>array('Firefox/5.'), 'excludes'=>array() ), 'Firefox 4' => array( 'alias'=>array('Firefox/4.'), 'excludes'=>array() ), 'Firefox 3' => array( 'alias'=>array('Firefox/3.'), 'excludes'=>array('Camino', 'Flock', 'ggpht.com') ), 'Firefox 2' => array( 'alias'=>array('Firefox/2.'), 'excludes'=>array('Camino', 'WordPress.com mShots') ), 'Firefox 1.5' => array( 'alias'=>array('Firefox/1.5'), 'excludes'=>array() ), 'Firefox' => array( 'alias'=>array('Firefox', 'FxiOS'), 'excludes'=>array('camino', 'flock', 'ggpht.com', 'WordPress.com mShots') ), 'BlackBerry' => array( 'alias'=>array('BB10'), 'excludes'=>array() ), 'Mobile Safari' => array( 'alias'=>array('Mobile Safari', 'Mobile/'), 'excludes'=>array('bot', 'preview', 'OPR/', 'Coast/', 'Vivaldi', 'CFNetwork', 'FxiOS') ), 'Silk' => array( 'alias'=>array('Silk/'), 'excludes'=>array() ), 'Safari 9' => array( 'alias'=>array('Version/9'), 'excludes'=>array('Applebot') ), 'Safari 8' => array( 'alias'=>array('Version/8'), 'excludes'=>array('Applebot') ), 'Safari 7' => array( 'alias'=>array('Version/7'), 'excludes'=>array('bing') ), 'Safari 6' => array( 'alias'=>array('Version/6'), 'excludes'=>array() ), 'Safari 5' => array( 'alias'=>array('Version/5'), 'excludes'=>array('Google Web Preview') ), 'Safari 4' => array( 'alias'=>array('Version/4'), 'excludes'=>array('Googlebot-Mobile') ), 'Safari' => array( 'alias'=>array('Safari'), 'excludes'=>array('bot', 'preview', 'OPR/', 'Coast/', 'Vivaldi', 'CFNetwork', 'Phantom') ), 'Opera' => array( 'alias'=>array(' Coast/1.'), 'excludes'=>array() ), 'Opera' => array( 'alias'=>array(' Coast/'), 'excludes'=>array() ), 'Opera Mobile' => array( 'alias'=>array('Mobile Safari'), 'excludes'=>array() ), 'Opera Mini' => array( 'alias'=>array('Opera Mini'), 'excludes'=>array() ), 'Opera 34' => array( 'alias'=>array('OPR/34.'), 'excludes'=>array() ), 'Opera 33' => array( 'alias'=>array('OPR/33.'), 'excludes'=>array() ), 'Opera 32' => array( 'alias'=>array('OPR/32.'), 'excludes'=>array() ), 'Opera 31' => array( 'alias'=>array('OPR/31.'), 'excludes'=>array() ), 'Opera 30' => array( 'alias'=>array('OPR/30.'), 'excludes'=>array() ), 'Opera 29' => array( 'alias'=>array('OPR/29.'), 'excludes'=>array() ), 'Opera 28' => array( 'alias'=>array('OPR/28.'), 'excludes'=>array() ), 'Opera 27' => array( 'alias'=>array('OPR/27.'), 'excludes'=>array() ), 'Opera 26' => array( 'alias'=>array('OPR/26.'), 'excludes'=>array() ), 'Opera 25' => array( 'alias'=>array('OPR/25.'), 'excludes'=>array() ), 'Opera 24' => array( 'alias'=>array('OPR/24.'), 'excludes'=>array() ), 'Opera 23' => array( 'alias'=>array('OPR/23.'), 'excludes'=>array() ), 'Opera 20' => array( 'alias'=>array('OPR/20.'), 'excludes'=>array() ), 'Opera 19' => array( 'alias'=>array('OPR/19.'), 'excludes'=>array() ), 'Opera 18' => array( 'alias'=>array('OPR/18.'), 'excludes'=>array() ), 'Opera 17' => array( 'alias'=>array('OPR/17.'), 'excludes'=>array() ), 'Opera 16' => array( 'alias'=>array('OPR/16.'), 'excludes'=>array() ), 'Opera 15' => array( 'alias'=>array('OPR/15.'), 'excludes'=>array() ), 'Opera 12' => array( 'alias'=>array('Opera/12', 'Version/12.'), 'excludes'=>array() ), 'Opera 11' => array( 'alias'=>array('Version/11.'), 'excludes'=>array() ), 'Opera 10' => array( 'alias'=>array('Opera/9.8'), 'excludes'=>array() ), 'Opera 9' => array( 'alias'=>array('Opera/9'), 'excludes'=>array() ), 'Opera' => array( 'alias'=>array(' OPR/', 'Opera'), 'excludes'=>array() ), 'Konqueror' => array( 'alias'=>array('Konqueror'), 'excludes'=>array('Exabot') ), 'Samsung Dolphin 2' => array( 'alias'=>array('Dolfin/2'), 'excludes'=>array() ), 'iTunes' => array( 'alias'=>array('iTunes'), 'excludes'=>array() ), 'App Store' => array( 'alias'=>array('MacAppStore'), 'excludes'=>array() ), 'Adobe AIR application' => array( 'alias'=>array('AdobeAIR'), 'excludes'=>array() ), 'Apple WebKit' => array( 'alias'=>array('AppleWebKit'), 'excludes'=>array('bot', 'preview', 'OPR/', 'Coast/', 'Vivaldi', 'Phantom') ), 'Lotus Notes' => array( 'alias'=>array('Lotus-Notes'), 'excludes'=>array() ), 'Camino' => array( 'alias'=>array('Camino'), 'excludes'=>array() ), 'Camino 2' => array( 'alias'=>array('Camino/2'), 'excludes'=>array() ), 'Flock' => array( 'alias'=>array('Flock'), 'excludes'=>array() ), 'Thunderbird 12' => array( 'alias'=>array('Thunderbird/12'), 'excludes'=>array() ), 'Thunderbird 11' => array( 'alias'=>array('Thunderbird/11'), 'excludes'=>array() ), 'Thunderbird 10' => array( 'alias'=>array('Thunderbird/10'), 'excludes'=>array() ), 'Thunderbird 8' => array( 'alias'=>array('Thunderbird/8'), 'excludes'=>array() ), 'Thunderbird 7' => array( 'alias'=>array('Thunderbird/7'), 'excludes'=>array() ), 'Thunderbird 6' => array( 'alias'=>array('Thunderbird/6'), 'excludes'=>array() ), 'Thunderbird 3' => array( 'alias'=>array('Thunderbird/3'), 'excludes'=>array() ), 'Thunderbird 2' => array( 'alias'=>array('Thunderbird/2'), 'excludes'=>array() ), 'Thunderbird' => array( 'alias'=>array('Thunderbird'), 'excludes'=>array() ), 'Vivaldi' => array( 'alias'=>array('Vivaldi'), 'excludes'=>array() ), 'SeaMonkey' => array( 'alias'=>array('SeaMonkey'), 'excludes'=>array() ), 'Mobil Robot/Spider' => array( 'alias'=>array('Googlebot-Mobile'), 'excludes'=>array() ), 'Robot/Spider' => array( 'alias'=>array('Googlebot', 'Mediapartners-Google', 'Web Preview', 'bot', 'Applebot', 'spider', 'crawler', 'Feedfetcher', 'Slurp', 'Twiceler', 'Nutch', 'BecomeBot', 'bingbot', 'BingPreview', 'Google Web Preview', 'WordPress.com mShots', 'Seznam', 'facebookexternalhit', 'YandexMarket', 'Teoma', 'ThumbSniper', 'Phantom'), 'excludes'=>array() ), 'Mozilla' => array( 'alias'=>array('Mozilla', 'Moozilla'), 'excludes'=>array('ggpht.com') ), 'CFNetwork' => array( 'alias'=>array('CFNetwork'), 'excludes'=>array() ), 'Eudora' => array( 'alias'=>array('Eudora', 'EUDORA'), 'excludes'=>array() ), 'PocoMail' => array( 'alias'=>array('PocoMail'), 'excludes'=>array() ), 'The Bat!' => array( 'alias'=>array('The Bat'), 'excludes'=>array() ), 'NetFront' => array( 'alias'=>array('NetFront'), 'excludes'=>array() ), 'Evolution' => array( 'alias'=>array('CamelHttpStream'), 'excludes'=>array() ), 'Lynx' => array( 'alias'=>array('Lynx'), 'excludes'=>array() ), 'Downloading Tool' => array( 'alias'=>array('cURL', 'wget', 'ggpht.com', 'Apache-HttpClient'), 'excludes'=>array() ), 'Unknown' => array( 'alias'=>array(), 'excludes'=>array() ) );
(完)