PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等
1. [代码][PHP]代码
<?php class Client { function CID_windows_detect_os($ua) { $os_name = $os_code = $os_ver = $pda_name = $pda_code = $pda_ver = null; if (preg_match('/Windows 95/i', $ua) || preg_match('/Win95/', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "95"; } elseif (preg_match('/Windows NT 5.0/i', $ua) || preg_match('/Windows 2000/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "2000"; } elseif (preg_match('/Win 9x 4.90/i', $ua) || preg_match('/Windows ME/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "ME"; } elseif (preg_match('/Windows.98/i', $ua) || preg_match('/Win98/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "98"; } elseif (preg_match('/Windows NT 6.0/i', $ua)) { $os_name = "Windows"; $os_code = "windows_vista"; $os_ver = "Vista"; } elseif (preg_match('/Windows NT 6.1/i', $ua)) { $os_name = "Windows"; $os_code = "windows_win7"; $os_ver = "7"; } elseif (preg_match('/Windows NT 6.2/i', $ua)) { $os_name = "Windows"; $os_code = "windows_win8"; $os_ver = "8"; } elseif (preg_match('/Windows NT 5.1/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "XP"; } elseif (preg_match('/Windows NT 5.2/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; if (preg_match('/Win64/i', $ua)) { $os_ver = "XP 64 bit"; } else { $os_ver = "Server 2003"; } } elseif (preg_match('/Mac_PowerPC/i', $ua)) { $os_name = "Mac OS"; $os_code = "macos"; }elseif (preg_match('/Windows Phone/i', $ua)) { $matches = explode(';',$ua); $os_name = $matches[2]; $os_code = "windows_phone7"; } elseif (preg_match('/Windows NT 4.0/i', $ua) || preg_match('/WinNT4.0/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "NT 4.0"; } elseif (preg_match('/Windows NT/i', $ua) || preg_match('/WinNT/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_ver = "NT"; } elseif (preg_match('/Windows CE/i', $ua)) { list($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver) = self::CID_pda_detect_os($ua); $os_name = "Windows"; $os_code = "windows"; $os_ver = "CE"; if (preg_match('/PPC/i', $ua)) { $os_name = "Microsoft PocketPC"; $os_code = "windows"; $os_ver = ''; } if (preg_match('/smartphone/i', $ua)) { $os_name = "Microsoft Smartphone"; $os_code = "windows"; $os_ver = ''; } } else{ $os_name = 'Unknow Os'; $os_code = 'other'; } return array($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver); } function CID_unix_detect_os($ua) { $os_name = $os_ver = $os_code = null; if (preg_match('/Linux/i', $ua)) { $os_name = "Linux"; $os_code = "linux"; if (preg_match('#Debian#i', $ua)) { $os_code = "debian"; $os_name = "Debian GNU/Linux"; } elseif (preg_match('#Mandrake#i', $ua)) { $os_code = "mandrake"; $os_name = "Mandrake Linux"; } elseif (preg_match('#Kindle Fire#i',$ua)) {//for Kindle Fire $matches = explode(';',$ua); $os_code = "kindle"; $matches2 = explode(')',$matches[4]); $os_name = $matches[2].$matches2[0]; } elseif (preg_match('#Android#i',$ua)) {//Android $matches = explode(';',$ua); $os_code = "android"; $matches2 = explode(')',$matches[4]); $os_name = $matches[2].$matches2[0]; } elseif (preg_match('#SuSE#i', $ua)) { $os_code = "suse"; $os_name = "SuSE Linux"; } elseif (preg_match('#Novell#i', $ua)) { $os_code = "novell"; $os_name = "Novell Linux"; } elseif (preg_match('#Ubuntu#i', $ua)) { $os_code = "ubuntu"; $os_name = "Ubuntu Linux"; } elseif (preg_match('#Red ?Hat#i', $ua)) { $os_code = "redhat"; $os_name = "RedHat Linux"; } elseif (preg_match('#Gentoo#i', $ua)) { $os_code = "gentoo"; $os_name = "Gentoo Linux"; } elseif (preg_match('#Fedora#i', $ua)) { $os_code = "fedora"; $os_name = "Fedora Linux"; } elseif (preg_match('#MEPIS#i', $ua)) { $os_name = "MEPIS Linux"; } elseif (preg_match('#Knoppix#i', $ua)) { $os_name = "Knoppix Linux"; } elseif (preg_match('#Slackware#i', $ua)) { $os_code = "slackware"; $os_name = "Slackware Linux"; } elseif (preg_match('#Xandros#i', $ua)) { $os_name = "Xandros Linux"; } elseif (preg_match('#Kanotix#i', $ua)) { $os_name = "Kanotix Linux"; } } elseif (preg_match('/FreeBSD/i', $ua)) { $os_name = "FreeBSD"; $os_code = "freebsd"; } elseif (preg_match('/NetBSD/i', $ua)) { $os_name = "NetBSD"; $os_code = "netbsd"; } elseif (preg_match('/OpenBSD/i', $ua)) { $os_name = "OpenBSD"; $os_code = "openbsd"; } elseif (preg_match('/IRIX/i', $ua)) { $os_name = "SGI IRIX"; $os_code = "sgi"; } elseif (preg_match('/SunOS/i', $ua)) { $os_name = "Solaris"; $os_code = "sun"; } elseif (preg_match('#iPod.*.CPU.([a-zA-Z0-9.( _)]+)#i', $ua, $matches)) { $os_name = "iPod"; $os_code = "iphone"; $os_ver = $matches[1]; } elseif (preg_match('#iPhone.*.CPU.([a-zA-Z0-9.( _)]+)#i', $ua, $matches)) { $os_name = "iPhone"; $os_code = "iphone"; $os_ver = $matches[1]; } elseif (preg_match('#iPad.*.CPU.([a-zA-Z0-9.( _)]+)#i', $ua, $matches)) { $os_name = "iPad"; $os_code = "ipad"; $os_ver = $matches[1]; } elseif (preg_match('/Mac OS X.([0-9. _]+)/i', $ua, $matches)) { $os_name = "Mac OS"; $os_code = "macos"; if(count(explode(7,$matches[1]))>1) $matches[1] = 'Lion '.$matches[1]; elseif(count(explode(8,$matches[1]))>1) $matches[1] = 'Mountain Lion '.$matches[1]; $os_ver = "X ".$matches[1]; } elseif (preg_match('/Macintosh/i', $ua)) { $os_name = "Mac OS"; $os_code = "macos"; } elseif (preg_match('/Unix/i', $ua)) { $os_name = "UNIX"; $os_code = "unix"; } elseif (preg_match('/CrOS/i', $ua)){ $os_name="Google Chrome OS"; $os_code="chromeos"; } elseif (preg_match('/Fedor.([0-9. _]+)/i', $ua, $matches)){ $os_name="Fedora"; $os_code="fedora"; $os_ver = $matches[1]; } else{ $os_name = 'Unknow Os'; $os_code = 'other'; } return array($os_name, $os_code, $os_ver); } function CID_pda_detect_os($ua) { $os_name = $os_code = $os_ver = $pda_name = $pda_code = $pda_ver = null; if (preg_match('#PalmOS#i', $ua)) { $os_name = "Palm OS"; $os_code = "palm"; } elseif (preg_match('#Windows CE#i', $ua)) { $os_name = "Windows CE"; $os_code = "windows"; } elseif (preg_match('#QtEmbedded#i', $ua)) { $os_name = "Qtopia"; $os_code = "linux"; } elseif (preg_match('#Zaurus#i', $ua)) { $os_name = "Linux"; $os_code = "linux"; } elseif (preg_match('#Symbian#i', $ua)) { $os_name = "Symbian OS"; $os_code = "symbian"; } elseif (preg_match('#PalmOS/sony/model#i', $ua)) { $pda_name = "Sony Clie"; $pda_code = "sony"; } elseif (preg_match('#Zaurus ([a-zA-Z0-9.]+)#i', $ua, $matches)) { $pda_name = "Sharp Zaurus " . $matches[1]; $pda_code = "zaurus"; $pda_ver = $matches[1]; } elseif (preg_match('#Series ([0-9]+)#i', $ua, $matches)) { $pda_name = "Series"; $pda_code = "nokia"; $pda_ver = $matches[1]; } elseif (preg_match('#Nokia ([0-9]+)#i', $ua, $matches)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = $matches[1]; } elseif (preg_match('#SIE-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Siemens"; $pda_code = "siemens"; $pda_ver = $matches[1]; } elseif (preg_match('#dopod([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Dopod"; $pda_code = "dopod"; $pda_ver = $matches[1]; } elseif (preg_match('#o2 xda ([a-zA-Z0-9 ]+);#i', $ua, $matches)) { $pda_name = "O2 XDA"; $pda_code = "o2"; $pda_ver = $matches[1]; } elseif (preg_match('#SEC-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Samsung"; $pda_code = "samsung"; $pda_ver = $matches[1]; } elseif (preg_match('#SonyEricsson ?([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "SonyEricsson"; $pda_code = "sonyericsson"; $pda_ver = $matches[1]; } elseif (preg_match('#Kindle\/([a-zA-Z0-9. ×\(.\)]+)#i',$ua, $matches)) {//for Kindle $pda_name = "kindle"; $pda_code = "kindle"; $pda_ver = $matches[1]; } else { $pda_name = 'Unknow Os'; $pda_code = 'other'; } return array($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver); } function CID_detect_browser($ua) { $browser_name = $browser_code = $browser_ver = $os_name = $os_code = $os_ver = $pda_name = $pda_code = $pda_ver = null; $ua = preg_replace("/FunWebProducts/i", "", $ua); if (preg_match('#MovableType[ /]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'MovableType'; $browser_code = 'mt'; $browser_ver = $matches[1]; } elseif (preg_match('#WordPress[ /]([a-zA-Z0-9.]*)#i', $ua, $matches)) { $browser_name = 'WordPress'; $browser_code = 'wp'; $browser_ver = $matches[1]; } elseif (preg_match('#typepad[ /]([a-zA-Z0-9.]*)#i', $ua, $matches)) { $browser_name = 'TypePad'; $browser_code = 'typepad'; $browser_ver = $matches[1]; } elseif (preg_match('#drupal#i', $ua)) { $browser_name = 'Drupal'; $browser_code = 'drupal'; $browser_ver = count($matches) > 0 ? $matches[1] : ""; } elseif (preg_match('#symbianos/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $os_name = "SymbianOS"; $os_ver = $matches[1]; $os_code = 'symbian'; } elseif (preg_match('#avantbrowser.com#i', $ua)) { $browser_name = 'Avant Browser'; $browser_code = 'avantbrowser'; } elseif (preg_match('#(Camino|Chimera)[ /]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Camino'; $browser_code = 'camino'; $browser_ver = $matches[2]; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; } elseif (preg_match('#anonymouse#i', $ua, $matches)) { $browser_name = 'Anonymouse'; $browser_code = 'anonymouse'; } elseif (preg_match('#PHP#', $ua, $matches)) { $browser_name = 'PHP'; $browser_code = 'php'; } elseif (preg_match('#danger hiptop#i', $ua, $matches)) { $browser_name = 'Danger HipTop'; $browser_code = 'danger'; } elseif (preg_match('#w3m/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'W3M'; $browser_code = 'w3m'; $browser_ver = $matches[1]; } elseif (preg_match('#Shiira[/]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Shiira'; $browser_code = 'shiira'; $browser_ver = $matches[1]; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; } elseif (preg_match('#Dillo[ /]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Dillo'; $browser_code = 'dillo'; $browser_ver = $matches[1]; } elseif (preg_match('#Epiphany/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Epiphany'; $browser_code = 'epiphany'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } elseif (preg_match('#UP.Browser/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Openwave UP.Browser'; $browser_code = 'openwave'; $browser_ver = $matches[1]; } elseif (preg_match('#DoCoMo/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'DoCoMo'; $browser_code = 'docomo'; $browser_ver = $matches[1]; if ($browser_ver == '1.0') { preg_match('#DoCoMo/([a-zA-Z0-9.]+)/([a-zA-Z0-9.]+)#i', $ua, $matches); $browser_ver = $matches[2]; } elseif ($browser_ver == '2.0') { preg_match('#DoCoMo/([a-zA-Z0-9.]+) ([a-zA-Z0-9.]+)#i', $ua, $matches); $browser_ver = $matches[2]; } } elseif (preg_match('#(SeaMonkey)/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla SeaMonkey'; $browser_code = 'seamonkey'; $browser_ver = $matches[2]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Kazehakase/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Kazehakase'; $browser_code = 'kazehakase'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Flock/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Flock'; $browser_code = 'flock'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#(Firefox|Phoenix|Firebird|BonEcho|GranParadiso|Minefield|Iceweasel)/4([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla Firefox'; $browser_code = 'firefox'; $browser_ver = '4'.$matches[2]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#(Firefox|Phoenix|Firebird|BonEcho|GranParadiso|Minefield|Iceweasel)/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla Firefox'; $browser_code = 'firefox'; $browser_ver = $matches[2]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Minimo/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Minimo'; $browser_code = 'mozilla'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#MultiZilla/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'MultiZilla'; $browser_code = 'mozilla'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#SE 2([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'SouGou Browser'; $browser_code = 'sogou'; $browser_ver = '2'.$matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#baidubrowser ([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'BaiDu Browser'; $browser_code = 'baidubrowser'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#360([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = '360 Browser'; $browser_code = '360se'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#QQBrowser/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'QQ Browser'; $browser_code = 'qqbrowser'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('/PSP \(PlayStation Portable\)\; ([a-zA-Z0-9.]+)/', $ua, $matches)) { $pda_name = "Sony PSP"; $pda_code = "sony-psp"; $pda_ver = $matches[1]; } elseif (preg_match('#Galeon/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Galeon'; $browser_code = 'galeon'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } elseif (preg_match('#iCab/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'iCab'; $browser_code = 'icab'; $browser_ver = $matches[1]; $os_name = "Mac OS"; $os_code = "macos"; if (preg_match('#Mac OS X#i', $ua)) { $os_ver = "X"; } } elseif (preg_match('#K-Meleon/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'K-Meleon'; $browser_code = 'kmeleon'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Lynx/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Lynx'; $browser_code = 'lynx'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } elseif (preg_match('#Links \\(([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Links'; $browser_code = 'lynx'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } elseif (preg_match('#ELinks[/ ]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'ELinks'; $browser_code = 'lynx'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } elseif (preg_match('#ELinks \\(([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'ELinks'; $browser_code = 'lynx'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } elseif (preg_match('#Konqueror/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Konqueror'; $browser_code = 'konqueror'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); if (!$os_name) { list($os_name, $os_code, $os_ver) = self::CID_pda_detect_os($ua); } } elseif (preg_match('#NetPositive/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'NetPositive'; $browser_code = 'netpositive'; $browser_ver = $matches[1]; $os_name = "BeOS"; $os_code = "beos"; } elseif (preg_match('#OmniWeb#i', $ua)) { $browser_name = 'OmniWeb'; $browser_code = 'omniweb'; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; } elseif (preg_match('#Chrome/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Google Chrome'; $browser_code = 'chrome'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Arora/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Arora'; $browser_code = 'arora'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Maxthon( |\/)([a-zA-Z0-9.]+)#i', $ua,$matches)) { $browser_name = 'Maxthon'; $browser_code = 'maxthon'; $browser_ver = $matches[2]; if (preg_match('/Win/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#CriOS/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Chrome for iOS'; $browser_code = 'crios'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Safari/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Safari'; $browser_code = 'safari'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#opera mini#i', $ua)) { $browser_name = 'Opera Mini'; $browser_code = 'opera'; preg_match('#Opera/([a-zA-Z0-9.]+)#i', $ua, $matches); $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#Opera.(.*)Version[ /]([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Opera'; $browser_code = 'opera'; $browser_ver = $matches[2]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } if (!$os_name) { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } if (!$os_name) { list($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver) = self::CID_pda_detect_os($ua); } if (!$os_name) { if (preg_match('/Wii/i', $ua)) { $os_name = "Nintendo Wii"; $os_code = "nintendo-wii"; } } } elseif (preg_match('#Opera/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Opera Mini'; $browser_code = 'opera'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#WebPro/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'WebPro'; $browser_code = 'webpro'; $browser_ver = $matches[1]; $os_name = "PalmOS"; $os_code = "palmos"; } elseif (preg_match('#WebPro#i', $ua, $matches)) { $browser_name = 'WebPro'; $browser_code = 'webpro'; $os_name = "PalmOS"; $os_code = "palmos"; } elseif (preg_match('#Netfront/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Netfront'; $browser_code = 'netfront'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver) = self::CID_pda_detect_os($ua); } elseif (preg_match('#Xiino/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Xiino'; $browser_code = 'xiino'; $browser_ver = $matches[1]; } elseif (preg_match('/wp-blackberry\/([a-zA-Z0-9.]*)/i', $ua, $matches)) { $browser_name = "WordPress for BlackBerry"; $browser_code = "wordpress"; $browser_ver = $matches[1]; $pda_name = "BlackBerry"; $pda_code = "blackberry"; } elseif (preg_match('#Blackberry([0-9]+)#i', $ua, $matches)) { $pda_name = "Blackberry"; $pda_code = "blackberry"; $pda_ver = $matches[1]; } elseif (preg_match('#Blackberry#i', $ua)) { $pda_name = "Blackberry"; $pda_code = "blackberry"; } elseif (preg_match('#SPV ([0-9a-zA-Z.]+)#i', $ua, $matches)) { $pda_name = "Orange SPV"; $pda_code = "orange"; $pda_ver = $matches[1]; } elseif (preg_match('#LGE-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "LG"; $pda_code = 'lg'; $pda_ver = $matches[1]; } elseif (preg_match('#MOT-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Motorola"; $pda_code = 'motorola'; $pda_ver = $matches[1]; } elseif (preg_match('#Nokia ?([0-9]+)#i', $ua, $matches)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = $matches[1]; } elseif (preg_match('#NokiaN-Gage#i', $ua)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = "N-Gage"; } elseif (preg_match('#Blazer[ /]?([a-zA-Z0-9.]*)#i', $ua, $matches)) { $browser_name = "Blazer"; $browser_code = "blazer"; $browser_ver = $matches[1]; $os_name = "Palm OS"; $os_code = "palm"; } elseif (preg_match('#SIE-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Siemens"; $pda_code = "siemens"; $pda_ver = $matches[1]; } elseif (preg_match('#SEC-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Samsung"; $pda_code = "samsung"; $pda_ver = $matches[1]; } elseif (preg_match('/wp-iphone\/([a-zA-Z0-9.]*)/i', $ua, $matches)) { $browser_name = "WordPress for iOS"; $browser_code = "wordpress"; $browser_ver = $matches[1]; $pda_name = "iPhone & iPad"; $pda_code = "ipad"; } elseif (preg_match('/wp-android\/([a-zA-Z0-9.]*)/i', $ua, $matches)) { $browser_name = "WordPress for Android"; $browser_code = "wordpress"; $browser_ver = $matches[1]; $pda_name = "Android"; $pda_code = "android"; } elseif (preg_match('/wp-windowsphone\/([a-zA-Z0-9.]*)/i', $ua, $matches)) { $browser_name = "WordPress for Windows Phone 7"; $browser_code = "wordpress"; $browser_ver = $matches[1]; $pda_name = "Windows Phone 7"; $pda_code = "windows_phone7"; } elseif (preg_match('/wp-nokia\/([a-zA-Z0-9.]*)/i', $ua, $matches)) { $browser_name = "WordPress for Nokia"; $browser_code = "wordpress"; $browser_ver = $matches[1]; $pda_name = "Nokia"; $pda_code = "nokia"; } elseif (preg_match('#SAMSUNG-(S.H-[a-zA-Z0-9_/.]+)#i', $ua, $matches)) { $pda_name = "Samsung"; $pda_code = "samsung"; $pda_ver = $matches[1]; if (preg_match('#(j2me|midp)#i', $ua)) { $browser_name = "J2ME/MIDP Browser"; $browser_code = "j2me"; } } elseif (preg_match('#SonyEricsson ?([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "SonyEricsson"; $pda_code = "sonyericsson"; $pda_ver = $matches[1]; } elseif (preg_match('#(j2me|midp)#i', $ua)) { $browser_name = "J2ME/MIDP Browser"; $browser_code = "j2me"; // mice } elseif (preg_match('/GreenBrowser/i', $ua)) { $browser_name = 'GreenBrowser'; $browser_code = 'greenbrowser'; if (preg_match('/Win/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#TencentTraveler ([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = '腾讯TT浏览器'; $browser_code = 'tencenttraveler'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#UCWEB([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'UCWEB'; $browser_code = 'ucweb'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#MSIE ([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Internet Explorer'; $browser_ver = $matches[1]; if ( strpos($browser_ver, '7') !== false || strpos($browser_ver, '8') !== false) $browser_code = 'ie8'; elseif ( strpos($browser_ver, '9') !== false) $browser_code = 'ie9'; elseif ( strpos($browser_ver, '10') !== false) $browser_code = 'ie10'; else $browser_code = 'ie'; list($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver) = self::CID_windows_detect_os($ua); } elseif (preg_match('#Universe/([0-9.]+)#i', $ua, $matches)) { $browser_name = 'Universe'; $browser_code = 'universe'; $browser_ver = $matches[1]; list($os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver) = self::CID_pda_detect_os($ua); }elseif (preg_match('#Netscape[0-9]?/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Netscape'; $browser_code = 'netscape'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#^Mozilla/5.0#i', $ua) && preg_match('#rv:([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla'; $browser_code = 'mozilla'; $browser_ver = $matches[1]; if (preg_match('/Windows/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } } elseif (preg_match('#^Mozilla/([a-zA-Z0-9.]+)#i', $ua, $matches)) { $browser_name = 'Netscape Navigator'; $browser_code = 'netscape'; $browser_ver = $matches[1]; if (preg_match('/Win/i', $ua)) { list($os_name, $os_code, $os_ver) = self::CID_windows_detect_os($ua); } else { list($os_name, $os_code, $os_ver) = self::CID_unix_detect_os($ua); } }else{ $browser_name = 'Unknow Browser'; $browser_code = 'null'; } if (!$pda_name && !$os_name){ $pda_name = 'Unknow Os'; $pda_code = 'other'; $os_name = 'Unknow Os'; $os_code = 'other'; } return array($browser_name, $browser_code, $browser_ver, $os_name, $os_code, $os_ver, $pda_name, $pda_code, $pda_ver); } ////获得访客浏览器类型 function Get_Useragent(){ if(!empty($_SERVER['HTTP_USER_AGENT'])){ return self::CID_detect_browser($_SERVER['HTTP_USER_AGENT']); } else{ return array(); } } ////获得访客真实ip function Get_Ip_Addr(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //获取代理ip $ips = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); } if($ip){ $ips = array_unshift($ips,$ip); } $count = count($ips); for($i=0;$i<$count;$i++){ if(!preg_match("/^(10|172\.16|192\.168)\./i",$ips[$i])){//排除局域网ip $ip = $ips[$i]; break; } } $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR']; if($tip=="127.0.0.1"){ //获得本地真实IP return self::get_onlineip(); } else{ return $tip; } } ////获得本地真实IP function get_onlineip() { $ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip"); $ip_arr=json_decode(stripslashes($ip_json),1); if($ip_arr['code']==0) { return $ip_arr['data']['ip']; } } ////根据ip获得访客所在地地名 function Get_Ip_From($ip=''){ if(empty($ip)){ $ip = self::Getip(); } $ip_json=@file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//根据taobao ip $ip_arr=json_decode(stripslashes($ip_json),1); if($ip_arr['code']==0) { return $ip_arr['data']; } else { return false; } } }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
