Browser_Detection
[ class tree: Browser_Detection ] [ index: Browser_Detection ] [ all elements ]

Class: BrowserDetection

Source Location: /BrowserDetection.php

Class Overview


The BrowserDetection class facilitates the identification of the user's environment such as Web browser, version, platform and device type.


Author(s):

  • Alexandre Valiquette, Chris Schuld, Gary White

Version:

  • 2.9.5

Copyright:

  • Copyright (c) 2020, Wolfcast

Variables

Constants

Methods



Class Details

[line 148]
The BrowserDetection class facilitates the identification of the user's environment such as Web browser, version, platform and device type.

Typical usage:

$browser = new Wolfcast\BrowserDetection(); if ($browser->getName() == Wolfcast\BrowserDetection::BROWSER_FIREFOX && $browser->compareVersions($browser->getVersion(), '5.0') >= 0) { echo 'You are using FireFox version 5 or greater.'; }

The class is a rewrite of Chris Schuld's Browser class version 1.9 which is mostly unmaintained since August 20th, 2010. Chris' class was based on the original work from Gary White.

Updates:

2020-02-02: Version 2.9.5

  • WARNING! Breaking change: complete rework of robots detection. Now robot name and version is detected in addition of browser name and version. Use getRobotName() and getRobotVersion() when isRobot() is true.
  • WARNING! Breaking change: due to robots detection rework the following methods signatures has changed (isRobot parameter removed): addCustomBrowserDetection(), checkSimpleBrowserUA(), checkBrowserUAWithVersion().
  • Added possibility to support new robots with addCustomRobotDetection().
  • Added support for the new Microsoft Edge based on Chromium.
  • Added version names for Android 10 and later (Google no longer use candy names for new versions).
  • Added macOS Catalina detection.
  • Added Windows Server 2019 detection (Windows Server 2016 can be no longer detected due to the fact that they both use the same version number and that the build is not included in the user agent).
2019-03-27: Version 2.9.3
  • Fixed Edge detection on Android.
  • Added Android Q detection.
  • Now filtering superglobals.
2019-02-28: Version 2.9.2
  • Fixed Opera detection.
2018-08-23: Version 2.9.1
  • Fixed Chrome detection under iOS.
  • Added Android Pie detection.
  • Added macOS Mojave detection.
2018-07-15: Version 2.9.0
  • WARNING! Breaking change: new Wolfcast namespace. Use new Wolfcast\BrowserDetection().
  • iPad, iPhone and iPod are all under iOS now.
  • Added Android Oreo detection.
  • Added macOS High Sierra detection.
  • Added UC Browser detection.
  • Improved regular expressions (even less false positives).
  • Removed AOL detection.
  • Removed the following Web browsers detection: Amaya, Galeon, NetPositive, OmniWeb, Vivaldi detection (use addCustomBrowserDetection()).
  • Removed the following legacy platforms detection: BeOS, OS/2, SunOS (use addCustomPlatformDetection()).
2016-11-28: Version 2.5.1
  • Better detection of 64-bit platforms.
2016-08-19: Version 2.5.0
  • Platform version and platform version name are now supported for Mac.
  • Fixed platform version name for Android.
2016-08-02: Version 2.4.0
  • Platform version and platform version name are now supported for Android.
  • Added support for the Samsung Internet browser.
  • Added support for the Vivaldi browser.
  • Better support for legacy Windows versions.
2016-02-11: Version 2.3.0
  • WARNING! Breaking change: public method getBrowser() is renamed to getName().
  • WARNING! Breaking change: changed the compareVersions() return values to be more in line with other libraries.
  • You can now get the exact platform version (name or version numbers) on which the browser is run on with getPlatformVersion(). Only working with Windows operating systems at the moment.
  • You can now determine if the browser is executed from a 64-bit platform with is64bitPlatform().
  • Better detection of mobile platform for Googlebot.
2016-01-04: Version 2.2.0
  • Added support for Microsoft Edge.
2014-12-30: Version 2.1.2
  • Better detection of Opera.
2014-07-11: Version 2.1.1
  • Better detection of mobile devices and platforms.
2014-06-04: Version 2.1.0
  • Added support for IE 11+.
2013-05-27: Version 2.0.0 which is (almost) a complete rewrite based on Chris Schuld's Browser class version 1.9 plus changes below.
  • Added support for Opera Mobile
  • Added support for the Windows Phone (formerly Windows Mobile) platform
  • Added support for BlackBerry Tablet OS and BlackBerry 10
  • Added support for the Symbian platform
  • Added support for Bingbot
  • Added support for the Yahoo! Multimedia crawler
  • Removed iPhone/iPad/iPod browsers since there are not browsers but platforms - test them with getPlatform()
  • Removed support for Shiretoko (Firefox 3.5 alpha/beta) and MSN Browser
  • Merged Nokia and Nokia S60
  • Updated some deprecated browser names
  • Many public methods are now protected
  • Documentation updated
2010-07-04:
  • Added detection of IE compatibility view - test with getIECompatibilityView()
  • Added support for all (deprecated) Netscape versions
  • Added support for Safari < 3.0
  • Better Firefox version parsing
  • Better Opera version parsing
  • Better Mozilla detection




Tags:

author:  Alexandre Valiquette, Chris Schuld, Gary White
version:  2.9.5
copyright:  Copyright (c) 2020, Wolfcast
link:  https://chrisschuld.com/
link:  https://wolfcast.com/open-source/browser-detection/tutorial.php
link:  https://wolfcast.com/
link:  https://www.apptools.com/phptools/browser/
last-modified:  February 2, 2020
license:  https://www.gnu.org/licenses/lgpl-3.0.html


[ Top ]


Class Variables

$_agent =  ''

[line 226]



Tags:

access:  private

Type:   string


[ Top ]

$_browserName =  ''

[line 232]



Tags:

access:  private

Type:   string


[ Top ]

$_compatibilityViewName =  ''

[line 238]



Tags:

access:  private

Type:   string


[ Top ]

$_compatibilityViewVer =  ''

[line 244]



Tags:

access:  private

Type:   string


[ Top ]

$_customBrowserDetection = array()

[line 250]



Tags:

access:  private

Type:   array


[ Top ]

$_customPlatformDetection = array()

[line 256]



Tags:

access:  private

Type:   array


[ Top ]

$_customRobotDetection = array()

[line 262]



Tags:

access:  private

Type:   array


[ Top ]

$_is64bit =  false

[line 268]



Tags:

access:  private

Type:   boolean


[ Top ]

$_isMobile =  false

[line 274]



Tags:

access:  private

Type:   boolean


[ Top ]

$_isRobot =  false

[line 280]



Tags:

access:  private

Type:   boolean


[ Top ]

$_platform =  ''

[line 286]



Tags:

access:  private

Type:   string


[ Top ]

$_platformVersion =  ''

[line 292]



Tags:

access:  private

Type:   string


[ Top ]

$_robotName =  ''

[line 298]



Tags:

access:  private

Type:   string


[ Top ]

$_robotVersion =  ''

[line 304]



Tags:

access:  private

Type:   string


[ Top ]

$_version =  ''

[line 310]



Tags:

access:  private

Type:   string


[ Top ]



Class Methods


constructor __construct [line 321]

BrowserDetection __construct( [string $useragent = ''])

BrowserDetection class constructor.



Tags:

access:  public


Parameters:

string   $useragent   (optional) The user agent to work with. Leave empty for the current user agent (contained in $_SERVER['HTTP_USER_AGENT']).

[ Top ]

method addCustomBrowserDetection [line 375]

boolean addCustomBrowserDetection( string $browserName, [mixed $uaNameToLookFor = ''], [boolean $isMobile = false], [string $separator = '/'], [boolean $uaNameFindWords = true])

Dynamically add support for a new Web browser.



Tags:

return:  Returns true if the custom rule has been added, false otherwise.
see:  BrowserDetection::removeCustomBrowserDetection()
access:  public


Parameters:

string   $browserName   The Web browser name (used for display).
mixed   $uaNameToLookFor   (optional) The string (or array of strings) representing the browser name to find in the user agent. If omitted, $browserName will be used.
boolean   $isMobile   (optional) Determines if the browser is from a mobile device.
string   $separator   (optional) The separator string used to split the browser name and the version number in the user agent.
boolean   $uaNameFindWords   (optional) Determines if the browser name to find should match a word instead of a part of a word. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the browser name can be found anywhere in the user agent string.

[ Top ]

method addCustomPlatformDetection [line 402]

boolean addCustomPlatformDetection( string $platformName, [mixed $platformNameToLookFor = ''], [boolean $isMobile = false], [boolean $uaNameFindWords = true])

Dynamically add support for a new platform.



Tags:

return:  Returns true if the custom rule has been added, false otherwise.
see:  BrowserDetection::removeCustomPlatformDetection()
access:  public


Parameters:

string   $platformName   The platform name (used for display).
mixed   $platformNameToLookFor   (optional) The string (or array of strings) representing the platform name to find in the user agent. If omitted, $platformName will be used.
boolean   $isMobile   (optional) Determines if the platform is from a mobile device.
boolean   $uaNameFindWords   (optional) Determines if the platform name to find should match a word instead of a part of a word. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar".

[ Top ]

method addCustomRobotDetection [line 433]

boolean addCustomRobotDetection( string $robotName, [mixed $uaNameToLookFor = ''], [boolean $isMobile = false], [string $separator = '/'], [boolean $uaNameFindWords = true])

Dynamically add support for a new robot.



Tags:

return:  Returns true if the custom rule has been added, false otherwise.
see:  BrowserDetection::removeCustomRobotDetection()
access:  public


Parameters:

string   $robotName   The robot name (used for display).
mixed   $uaNameToLookFor   (optional) The string (or array of strings) representing the robot name to find in the user agent. If omitted, $robotName will be used.
boolean   $isMobile   (optional) Determines if the robot should be considered as mobile or not.
string   $separator   (optional) The separator string used to split the robot name and the version number in the user agent.
boolean   $uaNameFindWords   (optional) Determines if the robot name to find should match a word instead of a part of a word. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the robot name can be found anywhere in the user agent string.

[ Top ]

method androidVerToStr [line 760]

string androidVerToStr( string $androidVer)

Convert the Android version numbers to the operating system name. For instance '1.6' returns 'Donut'.



Tags:

return:  The operating system name or the constant PLATFORM_VERSION_UNKNOWN if nothing match the version numbers.
access:  protected


Parameters:

string   $androidVer   The Android version numbers as a string.

[ Top ]

method checkBrowser [line 1225]

boolean checkBrowser( )

Determine what is the browser used by the user.



Tags:

return:  Returns true if the browser has been identified, false otherwise.
access:  protected


[ Top ]

method checkBrowserAndroid [line 809]

boolean checkBrowserAndroid( )

Determine if the browser is the Android browser (based on the WebKit layout engine and coupled with Chrome's JavaScript engine) or not.



Tags:

return:  Returns true if the browser is the Android browser, false otherwise.
access:  protected


[ Top ]

method checkBrowserBlackBerry [line 821]

boolean checkBrowserBlackBerry( )

Determine if the browser is the BlackBerry browser or not.



Tags:

return:  Returns true if the browser is the BlackBerry browser, false otherwise.
link:  https://web.archive.org/web/20170328000854/http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/How-to-detect-the-BlackBerry-Browser/ta-p/559862
access:  protected


[ Top ]

method checkBrowserChrome [line 857]

boolean checkBrowserChrome( )

Determine if the browser is Chrome or not.



Tags:

return:  Returns true if the browser is Chrome, false otherwise.
link:  https://www.google.com/chrome/
access:  protected


[ Top ]

method checkBrowserCustom [line 868]

boolean checkBrowserCustom( )

Determine if the browser is among the custom browser rules or not. Rules are checked in the order they were added.



Tags:

return:  Returns true if we found the browser we were looking for in the custom rules, false otherwise.
access:  protected


[ Top ]

method checkBrowserEdge [line 887]

boolean checkBrowserEdge( )

Determine if the browser is Edge or not.



Tags:

return:  Returns true if the browser is Edge, false otherwise.
access:  protected


[ Top ]

method checkBrowserFirebird [line 897]

boolean checkBrowserFirebird( )

Determine if the browser is Firebird or not. Firebird was the name of Firefox from version 0.6 to 0.7.1.



Tags:

return:  Returns true if the browser is Firebird, false otherwise.
access:  protected


[ Top ]

method checkBrowserFirefox [line 908]

boolean checkBrowserFirefox( )

Determine if the browser is Firefox or not.



Tags:

return:  Returns true if the browser is Firefox, false otherwise.
link:  https://www.mozilla.org/en-US/firefox/new/
access:  protected


[ Top ]

method checkBrowserIcab [line 930]

boolean checkBrowserIcab( )

Determine if the browser is iCab or not.



Tags:

return:  Returns true if the browser is iCab, false otherwise.
link:  http://www.icab.de/
access:  protected


[ Top ]

method checkBrowserIceCat [line 942]

boolean checkBrowserIceCat( )

Determine if the browser is GNU IceCat (formerly known as GNU IceWeasel) or not.



Tags:

return:  Returns true if the browser is GNU IceCat, false otherwise.
link:  https://www.gnu.org/software/gnuzilla/
access:  protected


[ Top ]

method checkBrowserIceWeasel [line 953]

boolean checkBrowserIceWeasel( )

Determine if the browser is GNU IceWeasel (now know as GNU IceCat) or not.



Tags:

return:  Returns true if the browser is GNU IceWeasel, false otherwise.
see:  BrowserDetection::checkBrowserIceCat()
access:  protected


[ Top ]

method checkBrowserInternetExplorer [line 965]

boolean checkBrowserInternetExplorer( )

Determine if the browser is Internet Explorer or not.



Tags:

return:  Returns true if the browser is Internet Explorer, false otherwise.
link:  https://www.microsoft.com/ie/
link:  https://en.wikipedia.org/wiki/Internet_Explorer_Mobile
access:  protected


[ Top ]

method checkBrowserKonqueror [line 1056]

boolean checkBrowserKonqueror( )

Determine if the browser is Konqueror or not.



Tags:

return:  Returns true if the browser is Konqueror, false otherwise.
link:  https://www.konqueror.org/
access:  protected


[ Top ]

method checkBrowserLynx [line 1068]

boolean checkBrowserLynx( )

Determine if the browser is Lynx or not. It is the oldest web browser currently in general use and development.

It is a text-based only Web browser.




Tags:

return:  Returns true if the browser is Lynx, false otherwise.
link:  https://en.wikipedia.org/wiki/Lynx_(web_browser)
access:  protected


[ Top ]

method checkBrowserMozilla [line 1078]

boolean checkBrowserMozilla( )

Determine if the browser is Mozilla or not.



Tags:

return:  Returns true if the browser is Mozilla, false otherwise.
access:  protected


[ Top ]

method checkBrowserMsnTv [line 1089]

boolean checkBrowserMsnTv( )

Determine if the browser is MSN TV (formerly WebTV) or not.



Tags:

return:  Returns true if the browser is WebTv, false otherwise.
link:  https://en.wikipedia.org/wiki/MSN_TV
access:  protected


[ Top ]

method checkBrowserNetscape [line 1100]

boolean checkBrowserNetscape( )

Determine if the browser is Netscape or not. Official support for this browser ended on March 1st, 2008.



Tags:

return:  Returns true if the browser is Netscape, false otherwise.
link:  https://en.wikipedia.org/wiki/Netscape
access:  protected


[ Top ]

method checkBrowserNokia [line 1153]

boolean checkBrowserNokia( )

Determine if the browser is a Nokia browser or not.



Tags:

return:  Returns true if the browser is a Nokia browser, false otherwise.
link:  https://web.archive.org/web/20141012034159/http://www.developer.nokia.com/Community/Wiki/User-Agent_headers_for_Nokia_devices
access:  protected


[ Top ]

method checkBrowserOpera [line 1179]

boolean checkBrowserOpera( )

Determine if the browser is Opera or not.



Tags:

return:  Returns true if the browser is Opera, false otherwise.
link:  https://web.archive.org/web/20140220123653/http://my.opera.com/community/openweb/idopera/
link:  https://www.opera.com/mobile/
link:  https://www.opera.com/
access:  protected


[ Top ]

method checkBrowserPhoenix [line 1215]

boolean checkBrowserPhoenix( )

Determine if the browser is Phoenix or not. Phoenix was the name of Firefox from version 0.1 to 0.5.



Tags:

return:  Returns true if the browser is Phoenix, false otherwise.
access:  protected


[ Top ]

method checkBrowserSafari [line 1267]

boolean checkBrowserSafari( )

Determine if the browser is Safari or not.



Tags:



[ Top ]

method checkBrowserSamsung [line 1306]

boolean checkBrowserSamsung( )

Determine if the browser is the Samsung Internet browser or not.



Tags:

return:  Returns true if the browser is the the Samsung Internet browser, false otherwise.
access:  protected


[ Top ]

method checkBrowserUAWithVersion [line 1325]

boolean checkBrowserUAWithVersion( mixed $uaNameToLookFor, string $userAgent, string $browserName, [boolean $isMobile = false], [boolean $findWords = true])

Test the user agent for a specific browser that use a "Version" string (like Safari and Opera). The user agent should look like: "Version/1.0 Browser name/123.456" or "Browser name/123.456 Version/1.0".



Tags:

return:  Returns true if we found the browser we were looking for, false otherwise.
access:  protected


Parameters:

mixed   $uaNameToLookFor   The string (or array of strings) representing the browser name to find in the user agent.
string   $userAgent   The user agent string to work with.
string   $browserName   The literal browser name. Always use a class constant!
boolean   $isMobile   (optional) Determines if the browser is from a mobile device.
boolean   $findWords   (optional) Determines if the needle should match a word to be found. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the needle can be found anywhere in the haystack.

[ Top ]

method checkBrowserUC [line 1357]

boolean checkBrowserUC( )

Determine if the browser is UC Browser or not.



Tags:

return:  Returns true if the browser is UC Browser, false otherwise.
access:  protected


[ Top ]

method checkPlatform [line 1366]

void checkPlatform( )

Determine the user's platform.



Tags:

access:  protected


[ Top ]

method checkPlatformCustom [line 1433]

boolean checkPlatformCustom( )

Determine if the platform is among the custom platform rules or not. Rules are checked in the order they were added.



Tags:

return:  Returns true if we found the platform we were looking for in the custom rules, false otherwise.
access:  protected


[ Top ]

method checkPlatformVersion [line 1455]

void checkPlatformVersion( )

Determine the user's platform version.



Tags:

access:  protected


[ Top ]

method checkRobot [line 1557]

void checkRobot( )

Determine if it's a robot crawling the page and find it's name and version.



Tags:

access:  protected


[ Top ]

method checkRobotBingbot [line 1519]

boolean checkRobotBingbot( )

Determine if the robot is the Bingbot crawler or not.



Tags:

return:  Returns true if the robot is Bingbot, false otherwise.
link:  https://www.bing.com/webmaster/help/which-crawlers-does-bing-use-8c184ec0
access:  protected


[ Top ]

method checkRobotCustom [line 1573]

boolean checkRobotCustom( )

Determine if the robot is among the custom robot rules or not. Rules are checked in the order they were added.



Tags:

return:  Returns true if we found the robot we were looking for in the custom rules, false otherwise.
access:  protected


[ Top ]

method checkRobotGooglebot [line 1529]

boolean checkRobotGooglebot( )

Determine if the robot is the Googlebot crawler or not.



Tags:

return:  Returns true if the robot is Googlebot, false otherwise.
access:  protected


[ Top ]

method checkRobotMsnBot [line 1548]

boolean checkRobotMsnBot( )

Determine if the robot is the MSNBot crawler or not. In October 2010 it was replaced by the Bingbot robot.



Tags:

return:  Returns true if the robot is MSNBot, false otherwise.
see:  BrowserDetection::checkRobotBingbot()
access:  protected


[ Top ]

method checkRobotSlurp [line 1593]

boolean checkRobotSlurp( )

Determine if the robot is the Yahoo! Slurp crawler or not.



Tags:

return:  Returns true if the robot is Yahoo! Slurp, false otherwise.
access:  protected


[ Top ]

method checkRobotW3CValidator [line 1604]

boolean checkRobotW3CValidator( )

Determine if the robot is the W3C Validator or not.



Tags:

return:  Returns true if the robot is the W3C Validator, false otherwise.
link:  https://validator.w3.org/
access:  protected


[ Top ]

method checkRobotYahooMultimedia [line 1641]

boolean checkRobotYahooMultimedia( )

Determine if the robot is the Yahoo! multimedia crawler or not.



Tags:

return:  Returns true if the robot is the Yahoo! multimedia crawler, false otherwise.
access:  protected


[ Top ]

method checkSimpleBrowserUA [line 1662]

boolean checkSimpleBrowserUA( mixed $uaNameToLookFor, string $userAgent, string $browserName, [boolean $isMobile = false], [string $separator = '/'], [boolean $uaNameFindWords = true])

Test the user agent for a specific browser where the browser name is immediately followed by the version number.

The user agent should look like: "Browser name/1.0" or "Browser 1.0;".




Tags:

return:  Returns true if we found the browser we were looking for, false otherwise.
access:  protected


Parameters:

mixed   $uaNameToLookFor   The string (or array of strings) representing the browser name to find in the user agent.
string   $userAgent   The user agent string to work with.
string   $browserName   The literal browser name. Always use a class constant!
boolean   $isMobile   (optional) Determines if the browser is from a mobile device.
string   $separator   (optional) The separator string used to split the browser name and the version number in the user agent.
boolean   $uaNameFindWords   (optional) Determines if the browser name to find should match a word instead of a part of a word. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the browser name can be found anywhere in the user agent string.

[ Top ]

method checkSimpleRobot [line 1691]

boolean checkSimpleRobot( mixed $uaNameToLookFor, string $userAgent, string $robotName, [string $separator = '/'], [boolean $uaNameFindWords = true])

Test the user agent for a specific robot where the robot name is immediately followed by the version number.

The user agent should look like: "Robot name/1.0" or "Robot 1.0;".




Tags:

return:  Returns true if we found the robot we were looking for, false otherwise.
access:  protected


Parameters:

mixed   $uaNameToLookFor   The string (or array of strings) representing the robot name to find in the user agent.
string   $userAgent   The user agent string to work with.
string   $robotName   The literal robot name. Always use a class constant!
string   $separator   (optional) The separator string used to split the robot name and the version number in the user agent.
boolean   $uaNameFindWords   (optional) Determines if the robot name to find should match a word instead of a part of a word. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the robot name can be found anywhere in the user agent string.

[ Top ]

method cleanVersion [line 1710]

string cleanVersion( string $version)

Clean a version string from unwanted characters.



Tags:

return:  Returns the cleaned version number string.
access:  protected


Parameters:

string   $version   The version string to clean.

[ Top ]

method compareVersions [line 456]

int compareVersions( string $sourceVer, string $compareVer)

Compare two version number strings.



Tags:

return:  Returns -1 if $sourceVer < $compareVer, 0 if $sourceVer == $compareVer or 1 if $sourceVer > $compareVer.
access:  public


Parameters:

string   $sourceVer   The source version number.
string   $compareVer   The version number to compare with the source version number.

[ Top ]

method containString [line 1751]

boolean containString( string $haystack, mixed $needle, [boolean $insensitive = true], [boolean $findWords = true])

Find if one or more substring is contained in a string.



Tags:

return:  Returns true if the needle (or one of the needles) has been found in the haystack, false otherwise.
access:  protected


Parameters:

string   $haystack   The string to search in.
mixed   $needle   The string to search for. Can be a string or an array of strings if multiples values are to be searched.
boolean   $insensitive   (optional) Determines if we do a case-sensitive search (false) or a case-insensitive one (true).
boolean   $findWords   (optional) Determines if the needle should match a word to be found. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the needle can be found anywhere in the haystack.

[ Top ]

method detect [line 1780]

void detect( )

Detect the user environment from the details in the user agent string.



Tags:

access:  protected


[ Top ]

method findAndGetVersion [line 1801]

boolean findAndGetVersion( type $uaNameToLookFor, type $userAgent, &$version, [type $separator = '/'], [type $uaNameFindWords = true], type $version)

Test the user agent for a specific browser and extract it's version.



Tags:

return:  Returns true if we found the browser we were looking for, false otherwise.
access:  protected


Parameters:

type   $uaNameToLookFor   The string (or array of strings) representing the browser name to find in the user agent.
type   $userAgent   The user agent string to work with.
type   $version   String buffer that will contain the version found (if any).
type   $separator   (optional) The separator string used to split the browser name and the version number in the user agent.
type   $uaNameFindWords   (optional) Determines if the browser name to find should match a word instead of a part of a word. For example "Bar" would not be found in "FooBar" when true but would be found in "Foo Bar". When set to false, the browser name can be found anywhere in the user agent string.
   &$version  

[ Top ]

method getIECompatibilityView [line 503]

mixed getIECompatibilityView( [boolean $asArray = false])

Get the name and version of the browser emulated in the compatibility view mode (if any). Since Internet Explorer 8, IE can be put in compatibility mode to make websites that were created for older browsers, especially IE 6 and 7, look better in IE 8+ which renders web pages closer to the standards and thus differently from those older versions of IE.



Tags:

return:  If a string was requested, the function returns the name and version of the browser emulated in the compatibility view mode or an empty string if the browser is not in compatibility view mode. If an array was requested, an array with the keys 'browser' and 'version' is returned.
access:  public


Parameters:

boolean   $asArray   (optional) Determines if the return value must be an array (true) or a string (false).

[ Top ]

method getLibVersion [line 516]

string getLibVersion( )

Return the BrowserDetection class version.



Tags:

return:  Returns the version as a sting with the #.#.# format.
access:  public


[ Top ]

method getName [line 526]

string getName( )

Get the name of the browser. All of the return values are class constants. You can compare them like this: $myBrowserInstance->getName() == BrowserDetection::BROWSER_FIREFOX.



Tags:

return:  Returns the name of the browser or BrowserDetection::BROWSER_UNKNOWN if unknown.
access:  public


[ Top ]

method getPlatform [line 537]

string getPlatform( )

Get the name of the platform family on which the browser is run on (such as Windows, Apple, etc.). All of the return values are class constants. You can compare them like this: $myBrowserInstance->getPlatform() == BrowserDetection::PLATFORM_ANDROID.



Tags:

return:  Returns the name of the platform or BrowserDetection::PLATFORM_UNKNOWN if unknown.
access:  public


[ Top ]

method getPlatformVersion [line 555]

string getPlatformVersion( [boolean $returnVersionNumbers = false], [boolean $returnServerFlavor = false])

Get the platform version on which the browser is run on. It can be returned as a string number like 'NT 6.3' or as a name like 'Windows 8.1'. When returning version string numbers for Windows NT OS families the number is prefixed by 'NT ' to differentiate from older Windows 3.x & 9x release. At the moment only the Windows and Android operating systems are supported.



Tags:

return:  Returns the version name/version numbers of the platform or the constant PLATFORM_VERSION_UNKNOWN if unknown.
access:  public


Parameters:

boolean   $returnVersionNumbers   (optional) Determines if the return value must be versions numbers as a string (true) or the version name (false).
boolean   $returnServerFlavor   (optional) Since some Windows NT versions have the same values, this flag determines if the Server flavor is returned or not. For instance Windows 8.1 and Windows Server 2012 R2 both use version 6.3. This parameter is only useful when testing for Windows.

[ Top ]

method getRobotName [line 592]

string getRobotName( )

Get the name of the robot. All of the return values are class constants. You can compare them like this: $myBrowserInstance->getRobotName() == BrowserDetection::ROBOT_GOOGLEBOT.



Tags:

return:  Returns the name of the robot or BrowserDetection::ROBOT_UNKNOWN if unknown.
access:  public


[ Top ]

method getRobotVersion [line 601]

string getRobotVersion( )

Get the version of the robot.



Tags:

return:  Returns the version of the robot or BrowserDetection::ROBOT_VERSION_UNKNOWN if unknown.
access:  public


[ Top ]

method getUserAgent [line 610]

string getUserAgent( )

Get the user agent value used by the class to determine the browser details.



Tags:

return:  The user agent string.
access:  public


[ Top ]

method getVersion [line 619]

string getVersion( )

Get the version of the browser.



Tags:

return:  Returns the version of the browser or BrowserDetection::VERSION_UNKNOWN if unknown.
access:  public


[ Top ]

method iOSVerToStr [line 1834]

string iOSVerToStr( string $iOSVer)

Convert the iOS version numbers to the operating system name. For instance '2.0' returns 'iPhone OS 2.0'.



Tags:

return:  The operating system name.
access:  protected


Parameters:

string   $iOSVer   The iOS version numbers as a string.

[ Top ]

method is64bitPlatform [line 629]

boolean is64bitPlatform( )

Determine if the browser is executed from a 64-bit platform. Keep in mind that not all platforms/browsers report this and the result may not always be accurate.



Tags:

return:  Returns true if the browser is executed from a 64-bit platform.
access:  public


[ Top ]

method isChromeFrame [line 639]

boolean isChromeFrame( )

Determine if the browser runs Google Chrome Frame (it's a plug-in designed for Internet Explorer 6+ based on the open-source Chromium project - it's like a Chrome browser within IE).



Tags:

return:  Returns true if the browser is using Google Chrome Frame, false otherwise.
access:  public


[ Top ]

method isInIECompatibilityView [line 650]

boolean isInIECompatibilityView( )

Determine if the browser is in compatibility view or not. Since Internet Explorer 8, IE can be put in compatibility mode to make websites that were created for older browsers, especially IE 6 and 7, look better in IE 8+ which renders web pages closer to the standards and thus differently from those older versions of IE.



Tags:

return:  Returns true if the browser is in compatibility view, false otherwise.
access:  public


[ Top ]

method isMobile [line 659]

boolean isMobile( )

Determine if the browser is from a mobile device or not.



Tags:

return:  Returns true if the browser is from a mobile device, false otherwise.
access:  public


[ Top ]

method isRobot [line 668]

boolean isRobot( )

Determine if the browser is a robot (Googlebot, Bingbot, Yahoo! Slurp...) or not.



Tags:

return:  Returns true if the browser is a robot, false otherwise.
access:  public


[ Top ]

method macVerToStr [line 1850]

string macVerToStr( string $macVer)

Convert the macOS version numbers to the operating system name. For instance '10.7' returns 'Mac OS X Lion'.



Tags:

return:  The operating system name or the constant PLATFORM_VERSION_UNKNOWN if nothing match the version numbers.
access:  protected


Parameters:

string   $macVer   The macOS version numbers as a string.

[ Top ]

method parseInt [line 1899]

int parseInt( string $intStr)

Get the integer value of a string variable.



Tags:

return:  The integer value of $intStr on success, or 0 on failure.
access:  protected


Parameters:

string   $intStr   The scalar value being converted to an integer.

[ Top ]

method removeCustomBrowserDetection [line 679]

boolean removeCustomBrowserDetection( string $browserName)

Remove support for a previously added Web browser.



Tags:

return:  Returns true if the custom rule has been found and removed, false otherwise.
see:  BrowserDetection::addCustomBrowserDetection()
access:  public


Parameters:

string   $browserName   The Web browser name as used when added.

[ Top ]

method removeCustomPlatformDetection [line 695]

boolean removeCustomPlatformDetection( string $platformName)

Remove support for a previously added platform.



Tags:

return:  Returns true if the custom rule has been found and removed, false otherwise.
see:  BrowserDetection::addCustomPlatformDetection()
access:  public


Parameters:

string   $platformName   The platform name as used when added.

[ Top ]

method removeCustomRobotDetection [line 711]

boolean removeCustomRobotDetection( string $robotName)

Remove support for a previously added robot.



Tags:

return:  Returns true if the custom rule has been found and removed, false otherwise.
see:  BrowserDetection::addCustomRobotDetection()
access:  public


Parameters:

string   $robotName   The robot name as used when added.

[ Top ]

method reset [line 1908]

void reset( )

Reset all the properties of the class.



Tags:

access:  protected


[ Top ]

method safariBuildToSafariVer [line 1932]

string safariBuildToSafariVer( string $version)

Convert a Safari build number to a Safari version number.



Tags:

return:  Returns the Safari version string. If the version can't be determined, an empty string is returned.
link:  https://web.archive.org/web/20080514173941/http://developer.apple.com/internet/safari/uamatrix.html
access:  protected


Parameters:

string   $version   A string representing the version number.

[ Top ]

method set64bit [line 2026]

void set64bit( boolean $is64bit)

Set if the browser is executed from a 64-bit platform.



Tags:

access:  protected


Parameters:

boolean   $is64bit   Value that tells if the browser is executed from a 64-bit platform.

[ Top ]

method setBrowser [line 2036]

void setBrowser( string $browserName)

Set the name of the browser.



Tags:

access:  protected


Parameters:

string   $browserName   The name of the browser.

[ Top ]

method setMobile [line 2046]

void setMobile( [boolean $isMobile = true])

Set the browser to be from a mobile device or not.



Tags:

access:  protected


Parameters:

boolean   $isMobile   (optional) Value that tells if the browser is on a mobile device or not.

[ Top ]

method setPlatform [line 2056]

void setPlatform( string $platform)

Set the platform on which the browser is on.



Tags:

access:  protected


Parameters:

string   $platform   The name of the platform.

[ Top ]

method setPlatformVersion [line 2066]

void setPlatformVersion( string $platformVer)

Set the platform version on which the browser is on.



Tags:

access:  protected


Parameters:

string   $platformVer   The version numbers of the platform.

[ Top ]

method setRobot [line 2076]

void setRobot( [boolean $isRobot = true])

Set the browser to be a robot (crawler) or not.



Tags:

access:  protected


Parameters:

boolean   $isRobot   (optional) Value that tells if the browser is a robot or not.

[ Top ]

method setRobotName [line 2086]

void setRobotName( string $robotName)

Set the name of the robot.



Tags:

access:  protected


Parameters:

string   $robotName   The name of the robot.

[ Top ]

method setRobotVersion [line 2096]

void setRobotVersion( string $robotVersion)

Set the version of the robot.



Tags:

access:  protected


Parameters:

string   $robotVersion   The version of the robot.

[ Top ]

method setUserAgent [line 726]

void setUserAgent( [string $agentString = ''])

Set the user agent to use with the class.



Tags:

access:  public


Parameters:

string   $agentString   (optional) The value of the user agent. If an empty string is sent (default), $_SERVER['HTTP_USER_AGENT'] will be used.

[ Top ]

method setVersion [line 2112]

void setVersion( string $version)

Set the version of the browser.



Tags:

access:  protected


Parameters:

string   $version   The version of the browser.

[ Top ]

method webKitBuildToSafariVer [line 2131]

string webKitBuildToSafariVer( string $version)

Convert a WebKit build number to a Safari version number.



Tags:

return:  Returns the Safari version string. If the version can't be determined, an empty string is returned.
link:  https://web.archive.org/web/20080514173941/http://developer.apple.com/internet/safari/uamatrix.html
access:  protected


Parameters:

string   $version   A string representing the version number.

[ Top ]

method windowsNTVerToStr [line 2240]

string windowsNTVerToStr( string $winVer, [boolean $returnServerFlavor = false])

Convert the Windows NT family version numbers to the operating system name. For instance '5.1' returns 'Windows XP'.



Tags:

return:  The operating system name or the constant PLATFORM_VERSION_UNKNOWN if nothing match the version numbers.
access:  protected


Parameters:

string   $winVer   The Windows NT family version numbers as a string.
boolean   $returnServerFlavor   (optional) Since some Windows NT versions have the same values, this flag determines if the Server flavor is returned or not. For instance Windows 8.1 and Windows Server 2012 R2 both use version 6.3.

[ Top ]

method windowsVerToStr [line 2288]

string windowsVerToStr( string $winVer)

Convert the Windows 3.x & 9x family version numbers to the operating system name. For instance '4.10.1998' returns 'Windows 98'.



Tags:

return:  The operating system name or the constant PLATFORM_VERSION_UNKNOWN if nothing match the version numbers.
access:  protected


Parameters:

string   $winVer   The Windows 3.x or 9x family version numbers as a string.

[ Top ]

method wordPos [line 2322]

mixed wordPos( string $haystack, string $needle, [boolean $insensitive = true], [int $offset = 0], [ &$foundString = NULL], string $foundString)

Find the position of the first occurrence of a word in a string.



Tags:

return:  Returns the position of the needle (int) if found, false otherwise. Warning this function may return Boolean false, but may also return a non-Boolean value which evaluates to false.
access:  protected


Parameters:

string   $haystack   The string to search in.
string   $needle   The string to search for.
boolean   $insensitive   (optional) Determines if we do a case-sensitive search (false) or a case-insensitive one (true).
int   $offset   If specified, search will start this number of characters counted from the beginning of the string. If the offset is negative, the search will start this number of characters counted from the end of the string.
string   $foundString   String buffer that will contain the exact matching needle found. Set to NULL when return value of the function is false.
   &$foundString  

[ Top ]

method __toString [line 330]

string __toString( )

Determine how the class will react when it is treated like a string.



Tags:

return:  Returns an HTML formatted string with a summary of the browser informations.
access:  public


[ Top ]


Class Constants

BROWSER_ANDROID =  'Android'

[line 154]

Constant for the name of the Web browser.


[ Top ]

BROWSER_BLACKBERRY =  'BlackBerry'

[line 155]

Constant for the name of the Web browser.


[ Top ]

BROWSER_CHROME =  'Chrome'

[line 156]

Constant for the name of the Web browser.


[ Top ]

BROWSER_EDGE =  'Edge'

[line 157]

Constant for the name of the Web browser.


[ Top ]

BROWSER_FIREBIRD =  'Firebird'

[line 158]

Constant for the name of the Web browser.


[ Top ]

BROWSER_FIREFOX =  'Firefox'

[line 159]

Constant for the name of the Web browser.


[ Top ]

BROWSER_ICAB =  'iCab'

[line 160]

Constant for the name of the Web browser.


[ Top ]

BROWSER_ICECAT =  'GNU IceCat'

[line 161]

Constant for the name of the Web browser.


[ Top ]

BROWSER_ICEWEASEL =  'GNU IceWeasel'

[line 162]

Constant for the name of the Web browser.


[ Top ]

BROWSER_IE =  'Internet Explorer'

[line 163]

Constant for the name of the Web browser.


[ Top ]

BROWSER_IE_MOBILE =  'Internet Explorer Mobile'

[line 164]

Constant for the name of the Web browser.


[ Top ]

BROWSER_KONQUEROR =  'Konqueror'

[line 165]

Constant for the name of the Web browser.


[ Top ]

BROWSER_LYNX =  'Lynx'

[line 166]

Constant for the name of the Web browser.


[ Top ]

BROWSER_MOZILLA =  'Mozilla'

[line 167]

Constant for the name of the Web browser.


[ Top ]

BROWSER_MSNTV =  'MSN TV'

[line 168]

Constant for the name of the Web browser.


[ Top ]

BROWSER_NETSCAPE =  'Netscape'

[line 169]

Constant for the name of the Web browser.


[ Top ]

BROWSER_NOKIA =  'Nokia Browser'

[line 170]

Constant for the name of the Web browser.


[ Top ]

BROWSER_OPERA =  'Opera'

[line 171]

Constant for the name of the Web browser.


[ Top ]

BROWSER_OPERA_MINI =  'Opera Mini'

[line 172]

Constant for the name of the Web browser.


[ Top ]

BROWSER_OPERA_MOBILE =  'Opera Mobile'

[line 173]

Constant for the name of the Web browser.


[ Top ]

BROWSER_PHOENIX =  'Phoenix'

[line 174]

Constant for the name of the Web browser.


[ Top ]

BROWSER_SAFARI =  'Safari'

[line 175]

Constant for the name of the Web browser.


[ Top ]

BROWSER_SAMSUNG =  'Samsung Internet'

[line 176]

Constant for the name of the Web browser.


[ Top ]

BROWSER_TABLET_OS =  'BlackBerry Tablet OS'

[line 177]

Constant for the name of the Web browser.


[ Top ]

BROWSER_UC =  'UC Browser'

[line 178]

Constant for the name of the Web browser.


[ Top ]

BROWSER_UNKNOWN =  'unknown'

[line 179]

Constant for the name of the Web browser.


[ Top ]

PLATFORM_ANDROID =  'Android'

[line 185]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_BLACKBERRY =  'BlackBerry'

[line 186]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_FREEBSD =  'FreeBSD'

[line 187]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_IOS =  'iOS'

[line 188]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_LINUX =  'Linux'

[line 189]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_MACINTOSH =  'Macintosh'

[line 190]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_NETBSD =  'NetBSD'

[line 191]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_NOKIA =  'Nokia'

[line 192]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_OPENBSD =  'OpenBSD'

[line 193]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_OPENSOLARIS =  'OpenSolaris'

[line 194]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_SYMBIAN =  'Symbian'

[line 195]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_UNKNOWN =  'unknown'

[line 196]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_VERSION_UNKNOWN =  'unknown'

[line 197]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_WINDOWS =  'Windows'

[line 198]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_WINDOWS_CE =  'Windows CE'

[line 199]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

PLATFORM_WINDOWS_PHONE =  'Windows Phone'

[line 200]

Constant for the name of the platform on which the Web browser runs.


[ Top ]

ROBOT_BINGBOT =  'Bingbot'

[line 206]

Constant for the name of the robot.


[ Top ]

ROBOT_GOOGLEBOT =  'Googlebot'

[line 207]

Constant for the name of the robot.


[ Top ]

ROBOT_MSNBOT =  'MSNBot'

[line 208]

Constant for the name of the robot.


[ Top ]

ROBOT_SLURP =  'Yahoo! Slurp'

[line 209]

Constant for the name of the robot.


[ Top ]

ROBOT_UNKNOWN =  ''

[line 210]

Constant for the name of the robot.


[ Top ]

ROBOT_VERSION_UNKNOWN =  ''

[line 211]

Constant for the name of the robot.


[ Top ]

ROBOT_W3CVALIDATOR =  'W3C Validator'

[line 212]

Constant for the name of the robot.


[ Top ]

ROBOT_YAHOO_MM =  'Yahoo! Multimedia'

[line 213]

Constant for the name of the robot.


[ Top ]

VERSION_UNKNOWN =  'unknown'

[line 219]

Version unknown constant.


[ Top ]



Documentation generated on Sun, 02 Feb 2020 00:29:49 -0500 by phpDocumentor 1.4.3