comment_agent) { return; } if (user_can_edit_post_comments($user_ID, $post->ID)) { $uastring = " *"; } $string = counterize_browser_string($comment->comment_agent, $image, $between); echo $before . $string . $uastring . $after; } function counterize_browser_string($ua, $image = false, $between = 'on') { list( $browser_name, $browser_code, $browser_ver, $browser_url, $os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url ) = counterize_detect_browser($ua); $string = counterize_friendly_string( $browser_name, $browser_code, $browser_ver, $browser_url, $os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url, $image, $between ); if (!$string) { $string = __("Unknown browser:
", 'counterize') . $ua; } return $string; } function counterize_detect_browser ($ua) { $browser_name = __("Unknown", 'counterize'); $browser_code = "unknown"; $browser_ver = ""; $browser_url = ""; $os_name = __("Unknown", 'counterize'); $os_code = "unknown"; $os_ver = ""; $os_url = ""; $ua = preg_replace("/FunWebProducts/i", "", $ua); /* perform an OS detection */ list($os_name, $os_code, $os_ver, $os_url) = counterize_windows_detect_os($ua); if ($os_code=="unknown") { list($os_name, $os_code, $os_ver, $os_url) = counterize_unix_detect_os($ua); } if ($os_code=="unknown") { list($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url) = counterize_pda_detect_os($ua); } /* here begins the browser detection */ if (preg_match('#MovableType[ /]([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'MovableType'; $browser_code = 'mt'; $browser_ver = $matches[1]; $browser_url = 'http://www.movabletype.org/'; } elseif (preg_match('#WordPress[ /]([a-zA-Z0-9\.]*)#i', $ua, $matches)) { $browser_name = 'WordPress'; $browser_code = 'wp'; $browser_ver = $matches[1]; $browser_url = 'http://www.wordpress.org/'; } elseif (preg_match('#typepad[ /]([a-zA-Z0-9\.]*)#i', $ua, $matches)) { $browser_name = 'TypePad'; $browser_code = 'typepad'; $browser_ver = $matches[1]; $browser_url = 'http://www.typepad.com/'; } elseif (preg_match('#ABrowse[ /]([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'ABrowse'; $browser_code = 'abrowse'; $browser_ver = $matches[1]; $browser_url = 'http://www.syllable.org/'; } elseif (preg_match('/Acoo Browser/i', $ua)) { $browser_name = 'Acoo Browser'; $browser_code = 'acoo'; $browser_url = 'http://www.acoobrowser.com/'; } elseif (preg_match('#amaya/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Amaya'; $browser_code = 'amaya'; $browser_ver = $matches[1]; $browser_url = 'http://www.w3.org/Amaya/'; } elseif (preg_match('/America Online Browser ([0-9\.]+)/i', $ua, $matches) || preg_match('/AOL ([0-9\.]+)/i', $ua, $matches) || preg_match('#Cheshire/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'AOL Browser'; $browser_code = 'aol'; $browser_ver = $matches[1]; if (preg_match('/rev([0-9\.]+)/i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.aol.com/'; } elseif (preg_match('#AmigaVoyager/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Amiga Voyager'; $browser_code = 'amigavoyager'; $browser_ver = $matches[1]; $browser_url = 'http://www.vapor.com/voyager/'; } elseif (preg_match('#Arora/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Arora'; $browser_code = 'arora'; $browser_ver = $matches[1]; $browser_url = 'http://code.google.com/p/arora/'; } elseif (preg_match('#Beonex/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_name = 'Beonex Communicator'; $browser_code = 'beonex'; $browser_ver = $matches[1]; $browser_url = 'http://www.beonex.com/communicator/'; } elseif (preg_match('/Browzar/i', $ua)) { $browser_name = 'Browzar'; $browser_code = 'browzar'; $browser_url = 'http://www.browzar.com/'; } elseif (preg_match('#curl/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Curl'; $browser_code = 'curl'; $browser_url = 'http://curl.haxx.se/'; } elseif (preg_match('/drupal/i', $ua)) { $browser_name = 'Drupal'; $browser_code = 'drupal'; $browser_ver = $matches[1]; $browser_url = 'http://drupal.org/'; } elseif (preg_match('#symbianos/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_name = "SymbianOS"; $os_ver = $matches[1]; $os_code = 'symbian'; $browser_url = 'http://symbian.nokia.com/'; } elseif (preg_match('/avantbrowser\.com/i', $ua)) { $browser_name = 'Avant Browser'; $browser_code = 'avantbrowser'; $browser_url = 'http://www.avantbrowser.com/'; } elseif (preg_match('#(Camino|Chimera)[ /]([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Camino'; $browser_code = 'camino'; $browser_ver = $matches[2]; $browser_url = 'http://caminobrowser.org/'; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; $os_url = 'http://www.apple.com/macosx/'; } elseif (preg_match('/Charon/i', $ua)) { $browser_name = 'Charon'; $browser_code = 'charon'; $browser_url = 'http://www.vitanuova.com/inferno/man/1/charon.html'; } elseif (preg_match('#CometBird/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'CometBird'; $browser_code = 'cometbird'; $browser_ver = $matches[1]; $browser_url = 'http://www.cometbird.com/'; } elseif (preg_match('/SlimBrowser/i', $ua)) { $browser_name = 'SlimBrowser'; $browser_code = 'slimbrowser'; $browser_url = 'http://www.slimbrowser.net/'; } elseif (preg_match('#Crazy Browser ([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Crazy Browser'; $browser_code = 'crazybrowser'; $browser_ver = $matches[1]; $browser_url = 'http://www.crazybrowser.com/'; } elseif (preg_match('#Conkeror/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Conkeror'; $browser_code = 'conkeror'; $browser_ver = $matches[1]; $browser_url = 'http://conkeror.org/'; } elseif (preg_match('#Cyberdog/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Cyberdog'; $browser_code = 'cyberdog'; $browser_ver = $matches[1]; $browser_url = 'http://www.cyberdog.org/'; } elseif (preg_match('/Deepnet Explorer ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Deepnet Explorer'; $browser_code = 'deepnet'; $browser_ver = $matches[1]; $browser_url = 'http://www.deepnetexplorer.com/'; } elseif (preg_match('#Deskbrowse/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'DeskBrowse'; $browser_code = 'deskbrowse'; $browser_ver = $matches[1]; $browser_url = 'http://www.deskbrowse.org/'; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; $os_url = 'http://www.apple.com/macosx/'; } elseif (preg_match('/anonymouse/i', $ua, $matches)) { $browser_name = 'Anonymouse'; $browser_code = 'anonymouse'; $browser_url = 'http://anonymouse.org/'; } elseif (preg_match('/PHP/', $ua, $matches)) { $browser_name = 'PHP'; $browser_code = 'php'; $browser_url = 'http://www.php.net/'; } elseif (preg_match('/danger hiptop/i', $ua)) { $browser_name = 'Danger HipTop'; $browser_code = 'danger'; $browser_url = 'http://www.hiptop.com/'; } elseif (preg_match('#w3m/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'W3M'; $browser_code = 'w3m'; $browser_ver = $matches[1]; $browser_url = 'http://w3m.sourceforge.net/'; } elseif (preg_match('/Shiira/i', $ua)) { $browser_name = 'Shiira'; $browser_code = 'shiira'; if (preg_match('#Shiira[ /]([0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://shiira.jp/'; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; $os_url = 'http://www.apple.com/macosx/'; } elseif (preg_match('#Dillo[ /]([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_name = 'Dillo'; $browser_code = 'dillo'; $browser_ver = $matches[1]; $browser_url = 'http://www.dillo.org/'; } elseif (preg_match('#Dooble/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Dooble'; $browser_code = 'dooble'; $browser_ver = $matches[1]; $browser_url = 'http://dooble.sourceforge.net/'; } elseif (preg_match('/Enigma Browser/i', $ua)) { $browser_name = 'Enigma Browser'; $browser_code = 'enigma'; $browser_url = 'http://www.suttondesigns.com/'; } elseif (preg_match('/Element Browser ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Element Browser'; $browser_code = 'elementbrowser'; $browser_ver = $matches[1]; $browser_url = 'http://www.elementsoftware.co.uk/'; } elseif (preg_match('#Surf[ /]([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Surf'; $browser_code = 'surf'; $browser_ver = $matches[1]; $browser_url = 'http://surf.suckless.org/'; } elseif (preg_match('#Epiphany/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Epiphany'; $browser_code = 'epiphany'; $browser_ver = $matches[1]; $browser_url = 'http://www.gnome.org/projects/epiphany/'; } elseif (preg_match('/Escape ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Escape'; $browser_code = 'escape'; $browser_ver = $matches[1]; $browser_url = 'http://www.espial.com/products/evo_browser/'; } elseif (preg_match('/FDM ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Free Download Manager'; $browser_code = 'fdm'; $browser_ver = $matches[1]; $browser_url = 'http://www.freedownloadmanager.org/'; $os_name = "Windows"; $os_code = "windows"; $os_url = "http://www.microsoft.com/windows/"; } elseif (preg_match('/GreenBrowser/i', $ua)) { $browser_name = 'GreenBrowser'; $browser_code = 'greenbrowser'; $browser_url = 'http://www.morequick.com/'; } elseif (preg_match('#Hana/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Hana'; $browser_code = 'hana'; $browser_ver = $matches[1]; $browser_url = 'http://www.macupdate.com/app/mac/25387/hana'; } elseif (preg_match('#HotJava/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'HotJava'; $browser_code = 'hotjava'; $browser_ver = $matches[1]; $browser_url = 'http://java.sun.com/products/archive/hotjava/index.html'; } elseif (preg_match('#IBM WebExplorer[ ]?/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'IBM WebExplorer'; $browser_code = 'webexplorer'; $browser_ver = $matches[1]; $browser_url = 'http://en.wikipedia.org/wiki/IBM_WebExplorer'; } elseif (preg_match('#IBrowse/([A-Za-z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'IBrowse'; $browser_code = 'ibrowse'; $browser_ver = $matches[1]; $browser_url = 'http://www.ibrowse-dev.net/'; } elseif (preg_match('#UP.Browser/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Openwave UP.Browser'; $browser_code = 'openwave'; $browser_ver = $matches[1]; $browser_url = 'http://www.openwave.com/'; } 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]; } $browser_url = 'http://www.nttdocomo.com/'; } elseif (preg_match('#(bonecho)/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Unbranded Firefox'; $browser_code = 'bonecho'; $browser_ver = $matches[2]; $browser_url = 'http://www.mozilla.org/projects/bonecho/'; } elseif (preg_match('#Iceape/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla Iceape'; $browser_code = 'iceape'; $browser_ver = $matches[1]; $browser_url = 'http://packages.debian.org/squeeze/iceape'; } elseif (preg_match('#iNet Browser ([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'iNet Browser'; $browser_code = 'inet'; $browser_ver = $matches[1]; $browser_url = ''; } elseif (preg_match('#IceCat/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_name = 'GNU IceCat'; $browser_code = 'icecat'; $browser_ver = $matches[1]; $browser_url = 'http://www.gnu.org/software/icecat/'; } elseif (preg_match('/IceWeasel/i', $ua)) { $browser_name = 'Debian IceWeasel'; $browser_code = 'iceweasel'; if (preg_match('#IceWeasel/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.geticeweasel.org/'; } elseif (preg_match('/SeaMonkey/i', $ua)) { $browser_name = 'Mozilla SeaMonkey'; $browser_code = 'seamonkey'; if (preg_match('#SeaMonkey/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.seamonkey-project.org/'; } elseif (preg_match('#Kazehakase/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Kazehakase'; $browser_code = 'kazehakase'; $browser_ver = $matches[1]; $browser_url = 'http://kazehakase.sourceforge.jp/'; } elseif (preg_match('#Flock/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Flock'; $browser_code = 'flock'; $browser_ver = $matches[1]; $browser_url = 'http://www.flock.com/'; } elseif (preg_match('#Fluid/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Fluid'; $browser_code = 'fluid'; $browser_ver = $matches[1]; $browser_url = 'http://fluidapp.com/'; } elseif (preg_match('#Firebird/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla Firebird'; $browser_code = 'firebird'; $browser_ver = $matches[1]; $browser_url = 'http://www.mozilla.org/projects/firebird/'; } elseif (preg_match('#Phoenix/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla Phoenix'; $browser_code = 'phoenix'; $browser_ver = $matches[1]; $browser_url = 'http://www-archive.mozilla.org/projects/phoenix/phoenix-release-notes.html'; } elseif (preg_match('#Pogo/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Pogo'; $browser_code = 'pogo'; $browser_ver = $matches[1]; $browser_url = 'http://www.att.com/'; } elseif (preg_match('#GranParadiso/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'GranParadiso'; $browser_code = 'granparadiso'; $browser_ver = $matches[1]; $browser_url = 'http://en.wikipedia.org/wiki/Firefox_3#Development'; } elseif (preg_match('#Lorentz/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Lorentz'; $browser_code = 'lorentz'; $browser_ver = $matches[1]; $browser_url = 'http://www.mozilla.com/en-US/firefox/lorentz/'; } elseif (preg_match('#Madfox/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Madfox'; $browser_code = 'madfox'; $browser_ver = $matches[1]; $browser_url = 'http://www.macupdate.com/app/mac/17936/madfox'; } elseif (preg_match('#Minefield/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Minefield'; $browser_code = 'minefield'; $browser_ver = $matches[1]; $browser_url = 'http://www.mozilla.org/projects/minefield/'; } elseif (preg_match('#Namoroka/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Namoroka'; $browser_code = 'namoroka'; $browser_ver = $matches[1]; $browser_url = 'http://www.mozilla.org/projects/namoroka/'; } elseif (preg_match('#Palemoon/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Palemoon'; $browser_code = 'palemoon'; $browser_ver = $matches[1]; $browser_url = 'http://www.palemoon.org/'; } elseif (preg_match('#Prism/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Prism'; $browser_code = 'prism'; $browser_ver = $matches[1]; $browser_url = 'http://prism.mozillalabs.com/'; } elseif (preg_match('#Shiretoko/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Shiretoko'; $browser_code = 'shiretoko'; $browser_ver = $matches[1]; $browser_url = 'http://www.mozilla.org/projects/shiretoko/'; } elseif (preg_match('#Sylera/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Sylera'; $browser_code = 'sylera'; $browser_ver = $matches[1]; $browser_url = 'http://ja.wikipedia.org/wiki/Sylera'; } elseif (preg_match('#Vonkeror/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Vonkeror'; $browser_code = 'vonkeror'; $browser_ver = $matches[1]; $browser_url = 'http://zzo38computer.cjb.net/vonkeror/'; } elseif (preg_match('#WeltweitimnetzBrowser/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Weltweitimnetz Browser'; $browser_code = 'weltweitimnetzbrowser'; $browser_ver = $matches[1]; $browser_url = 'http://code.google.com/p/weltweitimnetz-browser/'; } elseif (preg_match('#Wyzo/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Wyzo'; $browser_code = 'wyzo'; $browser_ver = $matches[1]; $browser_url = 'http://www.wyzo.com/'; } elseif (preg_match('#Firefox/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Mozilla Firefox'; $browser_code = 'firefox'; $browser_ver = $matches[1]; $browser_url = 'http://www.mozilla.com/firefox/'; } elseif (preg_match('#Minimo/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Minimo'; $browser_code = 'mozilla'; $browser_ver = $matches[1]; $browser_url = 'http://www-archive.mozilla.org/projects/minimo/'; } elseif (preg_match('#MultiZilla/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'MultiZilla'; $browser_code = 'mozilla'; $browser_ver = $matches[1]; $browser_url = 'http://multizilla.mozdev.org/'; } elseif (preg_match('#Navscape/([a-zA-Z0-9\.-]+)#i', $ua, $matches) || preg_match('#NavscapeNavigator/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_name = 'Navscape'; $browser_code = 'navscape'; $browser_ver = $matches[1]; $browser_url = 'http://sourceforge.net/projects/navscape/'; } elseif (preg_match('/PSP \(PlayStation Portable\)\; ([a-zA-Z0-9\.]+)/', $ua, $matches)) { $pda_name = "Sony PSP"; $pda_code = "sony-psp"; $pda_ver = $matches[1]; $pda_url = 'http://us.playstation.com/psp/'; } elseif (preg_match('#Galeon/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Galeon'; $browser_code = 'galeon'; $browser_ver = $matches[1]; $browser_url = 'http://galeon.sourceforge.net/'; } elseif (preg_match('#Orca/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Orca'; $browser_code = 'orca'; $browser_ver = $matches[1]; $browser_url = 'http://www.orcabrowser.com/'; } elseif (preg_match('/Oregano ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Oregano'; $browser_code = 'oregano'; $browser_ver = $matches[1]; $browser_url = 'http://www.castle.org.uk/oregano/'; } elseif (preg_match('#Sleipnir[/ ]([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Sleipnir'; $browser_code = 'sleipnir'; $browser_ver = $matches[1]; $browser_url = 'http://www.fenrir-inc.com/global/sleipnir/'; } elseif (preg_match('/iPod/i', $ua)) { $browser_name = 'iPod'; $browser_code = 'ipod'; $browser_url = 'http://www.apple.com/ipod/'; } elseif (preg_match('/iPhone/i', $ua)) { $browser_name = 'iPhone'; $browser_code = 'iphone'; $browser_url = 'http://www.apple.com/iphone/'; } elseif (preg_match('#iCab[/ ]([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'iCab'; $browser_code = 'icab'; $browser_ver = $matches[1]; $browser_url = ''; $os_name = "Mac OS"; $os_code = "macos"; if (preg_match('/Mac OS X/i', $ua)) { $os_ver = "X"; } $os_url = 'http://www.apple.com/macosx/'; } elseif (preg_match('#K-Meleon/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'K-Meleon'; $browser_code = 'kmeleon'; $browser_ver = $matches[1]; $browser_url = 'http://www.icab.de/'; } elseif (preg_match('#K-Ninja/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'K-Ninja'; $browser_code = 'kninja'; $browser_ver = $matches[1]; $browser_url = 'http://en.wikipedia.org/wiki/K-Meleon#K-Ninja.2C_KMLite'; } elseif (preg_match('#Kapiko/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Kapiko'; $browser_code = 'kapiko'; $browser_ver = $matches[1]; $browser_url = 'http://sites.google.com/site/kapikoproject/'; } elseif (preg_match('/KKMAN[ ]?([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'KKman'; $browser_code = 'kkman'; $browser_ver = $matches[1]; $browser_url = 'http://www.kkbox.com.tw/kkman/index.html'; } elseif (preg_match('#KMLite/([a-zA-Z0-9\.]+)#i', $ua)) { $browser_name = 'KMLite'; $browser_code = 'kmlite'; $browser_ver = $matches[1]; $browser_url = 'http://en.wikipedia.org/wiki/K-Meleon#K-Ninja.2C_KMLite'; } elseif (preg_match('#Konqueror/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_name = 'Konqueror'; $browser_code = 'konqueror'; $browser_ver = $matches[1]; $browser_url = 'http://www.konqueror.org/'; } elseif (preg_match('/LeechCraft/i', $ua)) { $browser_name = 'LeechCraft'; $browser_code = 'leechcraft'; if (preg_match('#LeechCraft/Poshuku ([a-zA-Z0-9\.-]+)#i', $ua, $matches) || preg_match('#LeechCraft/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://leechcraft.org/'; } elseif (preg_match('/Lynx/i', $ua)) { $browser_name = 'Lynx'; $browser_code = 'lynx'; if (preg_match('#Lynx/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://en.wikipedia.org/wiki/Lynx_(web_browser)'; } elseif (preg_match('/Links/i', $ua)) { $browser_name = 'Links'; $browser_code = 'links'; if (preg_match('#Links \(([a-zA-Z0-9\.]+)#i', $ua, $matches) || preg_match('#Links ([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.jikos.cz/~mikulas/links/'; } elseif (preg_match('#ELinks[/ ]([a-zA-Z0-9\.-]+)#i', $ua, $matches) || preg_match('#ELinks \(([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_name = 'ELinks'; $browser_code = 'elinks'; $browser_ver = $matches[1]; $browser_url = 'http://elinks.or.cz/'; } elseif (preg_match('#Lobo/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Lobo'; $browser_code = 'lobo'; $browser_ver = $matches[1]; $browser_url = 'http://lobobrowser.org/'; } elseif (preg_match('#lolifox/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Lolifox'; $browser_code = 'lolifox'; $browser_ver = $matches[1]; $browser_url = 'http://lolifox.com/'; } elseif (preg_match('#Lunascape[/ ]([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Lunascape'; $browser_code = 'lunascape'; $browser_ver = $matches[1]; $browser_url = 'http://www.lunascape.tv/'; } elseif (preg_match('/MyIE2/i', $ua)) { $browser_name = 'MyIE2'; $browser_code = 'myie2'; $browser_url = 'http://www.myie2.com/'; } elseif (preg_match('/Maxthon/i', $ua)) { $browser_name = 'Maxthon'; $browser_code = 'maxthon'; if (preg_match('#Maxthon[/ ]([0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.maxthon.com/'; } elseif (preg_match('#NCSA[ _]Mosaic/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'NCSA Mosaic'; $browser_code = 'mosaic'; $browser_ver = $matches[1]; $browser_url = 'http://www.ncsa.illinois.edu/Projects/mosaic.html'; } elseif (preg_match('#NetPositive/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'NetPositive'; $browser_code = 'netpositive'; $browser_ver = $matches[1]; $browser_url = 'http://en.wikipedia.org/wiki/NetPositive'; $os_name = "BeOS"; $os_code = "beos"; $os_url = 'http://en.wikipedia.org/wiki/BeOS'; } elseif (preg_match('#NetSurf/([0-9\.]+)#i', $ua, $matches)) { $browser_name = 'NetSurf'; $browser_code = 'netsurf'; $browser_ver = $matches[1]; $browser_url = 'http://www.netsurf-browser.org/'; } elseif (preg_match('/OmniWeb/i', $ua)) { $browser_name = 'OmniWeb'; $browser_code = 'omniweb'; if (preg_match('#OmniWeb/[v]?([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.omnigroup.com/applications/omniweb/'; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; $os_url = 'http://www.apple.com/macosx/'; } elseif (preg_match('#Chilkat/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Chilkat'; $browser_code = 'chilkat'; $browser_ver = $matches[1]; $browser_url = 'http://www.chilkatsoft.com/'; } elseif (preg_match('/Midori/i', $ua)) { $browser_name = 'Midori'; $browser_code = 'midori'; if (preg_match('#Midori/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.twotoasts.de/index.php?/pages/midori_summary.html'; } elseif (preg_match('#myibrow/([ a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'My Internet Browser'; $browser_code = 'myibrow'; $browser_ver = $matches[1]; $browser_url = 'http://sourceforge.net/projects/myibrow'; } elseif (preg_match('#Chrome/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Chrome'; $browser_code = 'chrome'; $browser_ver = $matches[1]; $browser_url = 'http://www.google.com/chrome/'; if (preg_match('#ChromePlus/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'ChromePlus'; $browser_ver = $matches[1]; $browser_url = 'http://www.chromeplus.org/'; } if (preg_match('#Comodo_Dragon/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Comodo Dragon'; $browser_ver = $matches[1]; $browser_url = 'http://www.comodo.com/home/browsers-toolbars/browser.php'; } if (preg_match('#Iron/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'SRWare Iron'; $browser_code = 'iron'; $browser_ver = $matches[1]; $browser_url = 'http://www.srware.net/en/software_srware_iron.php'; } if (preg_match('#RockMelt/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'RockMelt'; $browser_code = 'rockmelt'; $browser_ver = $matches[1]; $browser_url = 'http://www.rockmelt.com/'; } if (preg_match('#Chromium/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Chromium'; $browser_code = 'chromium'; $browser_ver = $matches[1]; $browser_url = 'http://www.chromium.org/'; } } elseif (preg_match('/rekonq/i', $ua)) { $browser_name = 'Rekonq'; $browser_code = 'rekonq'; $browser_url = 'http://rekonq.kde.org/'; } elseif (preg_match('#Stainless/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Stainless'; $browser_code = 'stainless'; $browser_ver = $matches[1]; $browser_url = 'http://www.stainlessapp.com/'; } elseif (preg_match('/TheWorld/i', $ua)) { $browser_name = 'TheWorld Browser'; $browser_code = 'theworld'; $browser_url = 'http://www.ioage.com/en/'; } elseif (preg_match('#(Sunrise|SunriseBrowser)/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Sunrise Browser'; $browser_code = 'sunrise'; $browser_ver = $matches[2]; $browser_url = 'http://www.sunrisebrowser.com/'; } elseif (preg_match('#Safari/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Safari'; $browser_code = 'safari'; $browser_ver = $matches[1]; $browser_url = 'http://www.apple.com/safari/'; if (preg_match('#Version/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } if (preg_match('/Mobile/i', $ua)) { $browser_name = 'Mobile Safari'; $browser_url = 'http://www.apple.com/iphone/features/safari.html'; } } elseif (preg_match('#NetNewsWire/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'NetNewsWire'; $browser_code = 'netnewswire'; $browser_ver = $matches[1]; $browser_url = 'http://netnewswireapp.com/'; $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; $os_url = 'http://www.apple.com/macosx/'; } elseif (preg_match('#NSPlayer/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'NSPlayer'; $browser_code = 'nsplayer'; $browser_ver = $matches[1]; $browser_url = 'http://www.nsplayer.org/'; } elseif (preg_match('#QtWeb Internet Browser/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'QtWeb Internet Browser'; $browser_code = 'qtweb'; $browser_ver = $matches[1]; $browser_url = 'http://www.qtweb.net/'; } elseif (preg_match('/opera mini/i', $ua)) { $browser_name = 'Opera Mini'; $browser_code = 'opera'; if (!preg_match('#Version/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { preg_match('#Opera/([a-zA-Z0-9\.]+)#i', $ua, $matches); } $browser_ver = $matches[1]; $browser_url = 'http://www.opera.com/mobile/'; } elseif (preg_match('/Opera/i', $ua, $matches)) { $browser_name = 'Opera'; $browser_code = 'opera'; if (preg_match('#Opera[ /]([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } if (preg_match('#Version/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.opera.com/'; } elseif (preg_match('/WebPro/i', $ua)) { $browser_name = 'WebPro'; $browser_code = 'webpro'; if (preg_match('#WebPro/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_ver = $matches[1]; } $browser_url = 'http://www.novarra.com/'; $os_name = "PalmOS"; $os_code = "palmos"; $os_url = 'http://www.palm.com/'; } elseif (preg_match('#Netfront/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Netfront'; $browser_code = 'netfront'; $browser_ver = $matches[1]; $browser_url = 'http://www.access-company.com/products/mobile_solutions/netfrontmobile/browser/index.html'; } elseif (preg_match('#Xiino/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Xiino'; $browser_code = 'xiino'; $browser_ver = $matches[1]; $browser_url = ''; } elseif (preg_match('/Blackberry/i', $ua)) { $pda_name = "Blackberry"; $pda_code = "blackberry"; $pda_url = 'http://us.blackberry.com/'; if (preg_match('/Blackberry([0-9]+)/i', $ua, $matches)) { $pda_ver = $matches[1]; if (preg_match('#Blackberry([0-9]+)/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Blackberry'; $browser_code = 'blackberry'; $browser_ver = $matches[2]; $browser_url = 'http://us.blackberry.com/'; } } else { if (preg_match('#Blackberry/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Blackberry'; $browser_code = 'blackberry'; $browser_ver = $matches[2]; $browser_url = 'http://www.blackberry.com/'; } } } elseif (preg_match('#SPV ([0-9a-zA-Z.]+)#i', $ua, $matches)) { $pda_name = "Orange SPV"; $pda_code = "orange"; $pda_ver = $matches[1]; $pda_url = 'http://www.orange.com/'; } elseif (preg_match('#LGE-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "LG"; $pda_code = 'lg'; $pda_ver = $matches[1]; $pda_url = 'http://www.lg.com/'; } elseif (preg_match('#MOT-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Motorola"; $pda_code = 'motorola'; $pda_ver = $matches[1]; $pda_url = 'http://www.motorola.com/'; } elseif (preg_match('#Nokia([a-zA-Z0-9-]+)/([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = $matches[1]; $pda_url = 'http://www.nokia.com/'; $browser_name = "Nokia"; $browser_code = "nokia"; $browser_ver = $matches[2]; $browser_url = 'http://www.nokia.com/'; } elseif (preg_match('#Nokia[ ]?([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = $matches[1]; $pda_url = 'http://www.nokia.com/'; } elseif (preg_match('/NokiaN-Gage/i', $ua)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = "N-Gage"; $pda_url = 'http://www.n-gage.com/'; } elseif (preg_match('#Blazer[ /]?([a-zA-Z0-9\.]*)#i', $ua, $matches)) { $browser_name = "Blazer"; $browser_code = "blazer"; $browser_ver = $matches[1]; $browser_url = 'http://en.wikipedia.org/wiki/Blazer_(web_browser)'; $os_name = "Palm OS"; $os_code = "palm"; $os_url = 'http://www.palm.com/'; } elseif (preg_match('#SIE-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Siemens"; $pda_code = "siemens"; $pda_ver = $matches[1]; $pda_url = 'http://www.siemens.com/'; } elseif (preg_match('#SEC-([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Samsung"; $pda_code = "samsung"; $pda_ver = $matches[1]; $pda_url = 'http://www.samsung.com/'; } elseif (preg_match('#SAMSUNG-(S.H-[a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "Samsung"; $pda_code = "samsung"; $pda_ver = $matches[1]; $pda_url = 'http://www.samsung.com/'; } elseif (preg_match('#SonyEricsson ?([a-zA-Z0-9]+)#i', $ua, $matches)) { $pda_name = "SonyEricsson"; $pda_code = "sonyericsson"; $pda_ver = $matches[1]; $pda_url = 'http://www.sonyericsson.com/'; } elseif (preg_match('/(j2me|midp)/i', $ua)) { $browser_name = "J2ME/MIDP Browser"; $browser_code = "j2me"; $browser_url = 'http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition'; } elseif (preg_match('/iRider ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'iRider'; $browser_code = 'irider'; $browser_ver = $matches[1]; $browser_url = 'http://www.irider.com/'; } elseif (preg_match('/TencentTraveler ([0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Tencent Traveler'; $browser_code = 'tencenttraveler'; $browser_ver = $matches[1]; $browser_url = 'http://tt.qq.com/'; } elseif (preg_match('/Uzbl/i', $ua)) { $browser_name = 'Uzbl'; $browser_code = 'uzbl'; $browser_url = 'http://www.uzbl.org/'; } elseif (preg_match('/MSIE ([a-zA-Z0-9\.]+)/i', $ua, $matches)) { $browser_name = 'Internet Explorer'; $browser_code = 'ie'; $browser_ver = $matches[1]; $browser_url = 'http://windows.microsoft.com/en-US/internet-explorer/products/ie/home'; } elseif (preg_match('#Netscape[0-9]?/([a-zA-Z0-9\.]+)#i', $ua, $matches) || preg_match('#Navigator/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Netscape Navigator'; $browser_code = 'netscape'; $browser_ver = $matches[1]; $browser_url = 'http://browser.netscape.com/'; } 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]; $browser_url = 'http://www.mozilla.org/'; } elseif (preg_match('#^Mozilla/([2-4]\.[a-zA-Z0-9-]+) \[#i', $ua, $matches) || preg_match('#^Mozilla/([2-4]\.[a-zA-Z0-9-]+) \(Macintosh#i', $ua, $matches)) { $browser_name = 'Netscape Navigator'; $browser_code = 'netscape'; $browser_ver = $matches[1]; $browser_url = 'http://browser.netscape.com/'; } elseif (preg_match('#vlc/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'VLC'; $browser_code = 'vlc'; $browser_ver = $matches[1]; $browser_url = 'http://www.videolan.org/vlc/'; } elseif (preg_match('#Java/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $browser_name = 'Java-based browser'; $browser_code = 'java'; $browser_ver = $matches[1]; $browser_url = 'http://www.java.com/'; } /* vars: $browser_name $browser_code $browser_ver $browser_url $os_name $os_code $os_ver $os_url $pda_name $pda_code $pda_ver $pda_url */ return array( $browser_name, $browser_code, $browser_ver, $browser_url, $os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url ); } function counterize_get_image_url ($code, $alt, $url='') { global $counterize_image_url; global $counterize_image_path; global $counterize_width_height; $alt = htmlspecialchars($alt); $code = htmlspecialchars($code); $res = ""; $hasurl=false; if (isset($url) && strlen($url) > 0) { $hasurl = true; } if (file_exists("{$counterize_image_path}/{$code}.png")) { $res .= ""; } return $res; } function counterize_friendly_string ( $browser_name = '' , $browser_code = '', $browser_ver = '' , $browser_url = '', $os_name = '' , $os_code = '' , $os_ver = '' , $os_url = '', $pda_name= '' , $pda_code = '' , $pda_ver = '' , $pda_url = '', $image = false, $between = 'on' ) { $out = ''; $browser_name = htmlspecialchars($browser_name); $browser_code = htmlspecialchars($browser_code); $browser_ver = htmlspecialchars($browser_ver); $browser_url = htmlspecialchars($browser_url); $os_name = htmlspecialchars($os_name); $os_code = htmlspecialchars($os_code); $os_ver = htmlspecialchars($os_ver); $os_url = htmlspecialchars($os_url); $pda_name = htmlspecialchars($pda_name); $pda_code = htmlspecialchars($pda_code); $pda_ver = htmlspecialchars($pda_ver); $pda_url = htmlspecialchars($pda_url); $between = $between; if ($browser_name && $pda_name) { if ($image) { $out .= counterize_get_image_url($browser_code, $browser_name, $browser_url); } $out .= "$browser_name"; if ($browser_ver) { $out .= " $browser_ver"; } $out .= " $between "; if ($image) { $out .= counterize_get_image_url($pda_code, $pda_name, $pda_url); } $out .= " $pda_name"; if ($pda_ver) { $out .= " $pda_ver"; } } elseif ($browser_name && $os_name) { if ($image) { $out .= counterize_get_image_url($browser_code, $browser_name, $browser_url); } $out .= "$browser_name"; if ($browser_ver) { $out .= " $browser_ver"; } $out .= " $between "; if ($image) { $out .= counterize_get_image_url($os_code, $os_name, $os_url); } $out .= " $os_name"; if ($os_ver) { $out .= " $os_ver"; } } elseif ($browser_name) { if ($image) { $out .= counterize_get_image_url($browser_code, $browser_name, $browser_url); } $out .= "$browser_name"; if ($browser_ver) { $out .= " $browser_ver"; } } elseif ($os_name) { if ($image) { $out .= counterize_get_image_url($os_code, $os_name, $os_url); } $out .= "$os_name"; if ($os_ver) { $out .= " $os_ver"; } } elseif ($pda_name) { if ($image) { $out .= counterize_get_image_url($pda_code, $pda_name, $pda_url); } $out .= "$pda_name"; if ($pda_ver) { $out .= " $pda_ver"; } } return $out; } function counterize_windows_detect_os ($ua) { $os_name = "Unknown"; $os_code = "unknown"; $os_ver = ""; $os_url = ""; if (preg_match('/Windows/i', $ua) || preg_match('/Win32/i', $ua) || preg_match('/Win64/i', $ua)) { $os_name = "Windows"; $os_code = "windows"; $os_url = "http://www.microsoft.com/windows/"; } if (preg_match('/Windows 3\.1/i', $ua) || preg_match('/Win31/i', $ua)) { $os_ver = "3.1"; } elseif (preg_match('/Windows 95/i', $ua) || preg_match('/Win95/i', $ua)) { $os_ver = "95"; } elseif (preg_match('/Windows NT 5\.0/i', $ua) || preg_match('/Windows 2000/i', $ua)) { $os_ver = "2000"; } elseif (preg_match('/Win 9x 4\.90/i', $ua) || preg_match('/Windows ME/i', $ua)) { $os_ver = "ME"; } elseif (preg_match('/Windows.98/i', $ua) || preg_match('/Win98/i', $ua)) { $os_ver = "98"; } elseif (preg_match('/Windows NT 5\.1/i', $ua) || preg_match('/Windows XP/i', $ua)) { $os_ver = "XP"; $os_url = "http://windows.microsoft.com/en-US/windows/products/windows-xp"; } elseif (preg_match('/Windows NT 5\.2/i', $ua)) { if (preg_match('/(Win64|WOW64)/i', $ua)) { $os_ver = "XP 64 bit"; $os_url = "http://windows.microsoft.com/en-US/windows/products/windows-xp"; } else { $os_ver = "Server 2003"; $os_url = "http://technet.microsoft.com/en-us/windowsserver/bb512919.aspx"; } } elseif (preg_match('/Windows NT 6\.0/i', $ua) || preg_match('/Windows Vista/i', $ua)) { $os_ver = "Vista"; if (preg_match('/Win64/i', $ua) || preg_match('/WOW64/i', $ua)) { $os_ver .= " 64 bit"; } $os_url = "http://windows.microsoft.com/en-US/windows-vista/products/home"; } elseif (preg_match('/Windows NT 6\.1/i', $ua)) { $os_ver = "7"; if (preg_match('/Win64/i', $ua) || preg_match('/WOW64/i', $ua)) { $os_ver .= " 64 bit"; } $os_url = "http://windows.microsoft.com/en-US/windows7/products/home"; } elseif (preg_match('/Windows NT 6\.2/i', $ua)) { $os_ver = "8"; if (preg_match('/Win64/i', $ua) || preg_match('/WOW64/i', $ua)) { $os_ver .= " 64 bit"; } } elseif (preg_match('/Windows NT 4\.0/i', $ua) || preg_match('/WinNT4\.0/i', $ua)) { $os_ver = "NT 4.0"; } elseif (preg_match('/Windows NT/i', $ua) || preg_match('/WinNT/i', $ua)) { $os_ver = "NT"; } elseif (preg_match('/WindowsMobile/i', $ua)) { list($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url) = counterize_pda_detect_os($ua); $os_name = "Windows Mobile"; $os_ver = ""; $os_url = "http://www.microsoft.com/windowsphone/"; } elseif (preg_match('/Windows CE/i', $ua)) { list($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url) = counterize_pda_detect_os($ua); $os_ver = "CE"; if (preg_match('/PPC/i', $ua)) { $os_name = "Microsoft PocketPC"; $os_ver = 'CE'; } if (preg_match('/smartphone/i', $ua)) { $os_name = "Microsoft Smartphone"; $os_ver = 'CE'; } } return array($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url); } function counterize_unix_detect_os ($ua) { $os_name = "Unknown"; $os_code = "unknown"; $os_ver = ""; $os_url = ""; if (preg_match('/Linux/i', $ua)) { $os_name = "Linux"; $os_code = "linux"; $os_url = "http://en.wikipedia.org/wiki/Linux"; if (preg_match('/Android/i', $ua)) { list($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url) = counterize_pda_detect_os($ua); } elseif (preg_match('/Mandrake/i', $ua)) { $os_code = "mandrake"; $os_name = "Mandrake Linux"; $os_url = "http://www.mandriva.com/"; } elseif (preg_match('/Mandriva/i', $ua)) { $os_code = "mandriva"; $os_name = "Mandriva Linux"; $os_url = "http://www.mandriva.com/"; } elseif (preg_match('/SuSE/i', $ua)) { $os_code = "suse"; $os_name = "SuSE Linux"; $os_url = "http://www.opensuse.org/"; } elseif (preg_match('/Novell/i', $ua)) { $os_code = "novell"; $os_name = "Novell Linux"; $os_url = "http://www.novell.com/linux/"; } elseif (preg_match('/Kubuntu/i', $ua)) { $os_code = "kubuntu"; $os_name = "Kubuntu Linux"; if (preg_match('#Kubuntu/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.kubuntu.org/"; } elseif (preg_match('/Xubuntu/i', $ua)) { $os_code = "xubuntu"; $os_name = "Xubuntu Linux"; if (preg_match('#Xubuntu/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.xubuntu.org/"; } elseif (preg_match('/Edubuntu/i', $ua)) { $os_code = "edubuntu"; $os_name = "Edubuntu Linux"; if (preg_match('#Edubuntu/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.edubuntu.org/"; } elseif (preg_match('/Ubuntu/i', $ua)) { $os_code = "ubuntu"; $os_name = "Ubuntu Linux"; if (preg_match('#Ubuntu/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.ubuntu.com/"; } elseif (preg_match('/Debian/i', $ua)) { $os_code = "debian"; $os_name = "Debian GNU/Linux"; if (preg_match('#Debian/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.debian.org/"; } elseif (preg_match('/Mint/i', $ua)) { $os_code = "mint"; $os_name = "Linux Mint"; if (preg_match('#Mint/([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.linuxmint.com/"; } elseif (preg_match('/Red ?Hat/i', $ua)) { $os_code = "redhat"; $os_name = "RedHat Linux"; if (preg_match('#Red ?Hat/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.redhat.com/"; } elseif (preg_match('/Gentoo/i', $ua)) { $os_code = "gentoo"; $os_name = "Gentoo Linux"; $os_url = "http://www.gentoo.org/"; } elseif (preg_match('/CentOS/i', $ua)) { $os_code = "centos"; $os_name = "CentOS Linux"; if (preg_match('#CentOS/([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.centos.org/"; } elseif (preg_match('/Fedora/i', $ua)) { $os_code = "fedora"; $os_name = "Fedora Linux"; if (preg_match('#\.fc([0-9]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://fedoraproject.org/"; } elseif (preg_match('/MEPIS/i', $ua)) { $os_name = "MEPIS Linux"; $os_code = "mepis"; $os_url = "http://www.mepis.org/"; } elseif (preg_match('/Knoppix/i', $ua)) { $os_name = "Knoppix Linux"; $os_code = "knoppix"; $os_url = "http://www.knoppix.org/"; } elseif (preg_match('/Sabayon/i', $ua)) { $os_name = "Sabayon Linux"; $os_code = "sabayon"; $os_url = "http://www.sabayon.org/"; } elseif (preg_match('/Slackware/i', $ua)) { $os_code = "slackware"; $os_name = "Slackware Linux"; $os_url = "http://www.slackware.com/"; } elseif (preg_match('/Xandros/i', $ua)) { $os_name = "Xandros Linux"; $os_code = "xandros"; $os_url = "http://www.xandros.com/"; } elseif (preg_match('/Kanotix/i', $ua)) { $os_name = "Kanotix Linux"; $os_code = "kanotix"; $os_url = "http://www.kanotix.com/"; } } elseif (preg_match('/FreeBSD/i', $ua)) { $os_name = "FreeBSD"; $os_code = "freebsd"; if (preg_match('#FreeBSD[/ ]([0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.freebsd.org/"; } elseif (preg_match('/NetBSD/i', $ua)) { $os_name = "NetBSD"; $os_code = "netbsd"; $os_url = "http://www.netbsd.org/"; } elseif (preg_match('/OpenBSD/i', $ua)) { $os_name = "OpenBSD"; $os_code = "openbsd"; if (preg_match('#OpenBSD[/ ]([0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.openbsd.org/"; } elseif (preg_match('/Darwin/i', $ua)) { $os_code = "darwin"; $os_name = "Darwin"; if (preg_match('#Darwin[ /]?([a-zA-Z0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://en.wikipedia.org/wiki/Darwin_(operating_system)"; } elseif (preg_match('/IRIX/i', $ua)) { $os_name = "SGI IRIX"; $os_code = "sgi"; $os_url = "http://www.sgi.com/products/software/irix/"; } elseif (preg_match('/SunOS/i', $ua)) { $os_name = "Solaris"; $os_code = "sun"; if (preg_match('#SunOS[ /]([0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.oracle.com/us/solaris/index.html"; } elseif (preg_match('/iPhone OS ([0-9\._]+)/i', $ua, $matches)) { $os_name = "iPhone OS"; $os_code = "iphone"; $os_ver = $matches[1]; $os_url = "http://www.apple.com/iphone/"; } elseif (preg_match('/Mac OS X/i', $ua)) { $os_name = "Mac OS"; $os_code = "macos"; $os_ver = "X"; $os_url = "http://www.apple.com/macosx/"; } elseif (preg_match('/Star-Blade OS/i', $ua)) { $os_name = "Star-Blade OS"; $os_code = "starbladeos"; $os_url = "http://linkstechblog.com/"; } elseif (preg_match('/Amiga/i', $ua)) { $os_name = "AmigaOS"; $os_code = "amigaos"; if (preg_match('#AmigaOS[ ]?([0-9\.]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://hyperion-entertainment.biz/"; } elseif (preg_match('/Macintosh/i', $ua)) { $os_name = "Mac OS"; $os_code = "macos"; $os_url = "http://www.apple.com/macosx/"; } elseif (preg_match('/GNU/i', $ua)) { $os_name = "GNU"; $os_code = "gnu"; $os_url = "http://www.gnu.org/"; } elseif (preg_match('/Inferno/i', $ua)) { $os_name = "Inferno"; $os_code = "inferno"; $os_url = "http://www.vitanuova.com/inferno/"; } elseif (preg_match('/Unix/i', $ua)) { $os_name = "UNIX"; $os_code = "unix"; $os_url = "http://en.wikipedia.org/wiki/Unix"; } if (preg_match('/amd64/i', $ua) || preg_match('/x86_64/i', $ua)) { $os_ver .= ($os_ver == "" ? "" : " ") . "64 bit"; } if (preg_match('/ppc/i', $ua)) { $os_ver .= ($os_ver == "" ? "" : " ") . "PowerPC"; } if (preg_match('/arm/i', $ua)) { $os_ver .= ($os_ver == "" ? "" : " ") . "ARM"; } return array($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url); } function counterize_pda_detect_os ($ua) { $os_name = "Unknown"; $os_code = "unknown"; $os_ver = ""; $os_url = ""; if (preg_match('/Android/i', $ua)) { $os_name = "Android"; $os_code = "android"; if (preg_match('#Android[ /]([a-zA-Z0-9\.-]+)#i', $ua, $matches)) { $os_ver = $matches[1]; } $os_url = "http://www.android.com/"; } if (preg_match('/PalmOS/i', $ua)) { $os_name = "Palm OS"; $os_code = "palm"; $os_url = "http://www.palm.com/"; } elseif (preg_match('/Windows CE/i', $ua)) { $os_name = "Windows CE"; $os_code = "windows"; $os_url = "http://en.wikipedia.org/wiki/Windows_CE"; } elseif (preg_match('/WindowsMobile/i', $ua)) { $os_name = "Windows Mobile"; $os_code = "windows"; $os_url = "http://microsoft.com/windowsmobile/"; } elseif (preg_match('/QtEmbedded/i', $ua)) { $os_name = "Qtopia"; $os_code = "linux"; $os_url = "http://qpe.sourceforge.net/"; } elseif (preg_match('/Zaurus/i', $ua)) { $os_name = "Linux"; $os_code = "linux"; $os_url = "http://www.openzaurus.org/"; } elseif (preg_match('/Symbian/i', $ua)) { $os_name = "Symbian OS"; $os_code = "symbian"; $os_url = "http://symbian.nokia.com/"; } if (preg_match('#PalmOS/sony/model#i', $ua)) { $pda_name = "Sony Clie"; $pda_code = "sony"; $pda_url = "http://en.wikipedia.org/wiki/CLIÉ"; } elseif (preg_match('/Zaurus ([a-zA-Z0-9\.]+)/i', $ua, $matches)) { $pda_name = "Sharp Zaurus " . $matches[1]; $pda_code = "zaurus"; $pda_ver = $matches[1]; $pda_url = "http://en.wikipedia.org/wiki/Sharp_Zaurus"; } elseif (preg_match('/Series ([0-9]+)/i', $ua, $matches)) { $pda_name = "Series"; $pda_code = "nokia"; $pda_ver = $matches[1]; $pda_url = "http://www.nokia.com/"; } elseif (preg_match('/Nokia ([0-9]+)/i', $ua, $matches) || preg_match('/Nokia([a-zA-Z0-9]+)/i', $ua, $matches)) { $pda_name = "Nokia"; $pda_code = "nokia"; $pda_ver = $matches[1]; $pda_url = "http://www.nokia.com/"; } elseif (preg_match('/SIE-([a-zA-Z0-9]+)/i', $ua, $matches)) { $pda_name = "Siemens"; $pda_code = "siemens"; $pda_ver = $matches[1]; $pda_url = "http://www.siemens.com/"; } elseif (preg_match('/dopod([a-zA-Z0-9]+)/i', $ua, $matches)) { $pda_name = "Dopod"; $pda_code = "dopod"; $pda_ver = $matches[1]; $pda_url = "http://www.dopod.com/"; } elseif (preg_match('/o2 xda ([a-zA-Z0-9 ]+);/i', $ua, $matches)) { $pda_name = "O2 XDA"; $pda_code = "o2"; $pda_ver = $matches[1]; $pda_url = "http://xda.o2.co.uk/"; } elseif (preg_match('/SEC-([a-zA-Z0-9]+)/i', $ua, $matches)) { $pda_name = "Samsung"; $pda_code = "samsung"; $pda_ver = $matches[1]; $pda_url = "http://www.samsung.com/"; } elseif (preg_match('/SonyEricsson ?([a-zA-Z0-9]+)/i', $ua, $matches)) { $pda_name = "SonyEricsson"; $pda_code = "sonyericsson"; $pda_ver = $matches[1]; $pda_url = "http://www.sonyericsson.com/"; } elseif (preg_match('/Wii/i', $ua, $matches)) { $pda_name = "Nintendo Wii"; $pda_code = "wii"; $pda_url = "http://www.nintendo.com/wii"; } return array($os_name, $os_code, $os_ver, $os_url, $pda_name, $pda_code, $pda_ver, $pda_url); } ?>