protected function detectBrowser($userAgent)
	{
		// Attempt to detect the browser type.  Obviously we are only worried about major browsers.
		if ((stripos($userAgent, 'MSIE') !== false) && (stripos($userAgent, 'Opera') === false))
		{
			$this->browser = self::IE;
			$patternBrowser = 'MSIE';
		}
		elseif ((stripos($userAgent, 'Firefox') !== false) && (stripos($userAgent, 'like Firefox') === false))
		{
			$this->browser = self::FIREFOX;
			$patternBrowser = 'Firefox';
		}
		elseif (stripos($userAgent, 'Chrome') !== false)
		{
			$this->browser = self::CHROME;
			$patternBrowser = 'Chrome';
		}
		elseif (stripos($userAgent, 'Safari') !== false)
		{
			$this->browser = self::SAFARI;
			$patternBrowser = 'Safari';
		}
		elseif (stripos($userAgent, 'Opera') !== false)
		{
			$this->browser = self::OPERA;
			$patternBrowser = 'Opera';
		}

		// If we detected a known browser let's attempt to determine the version.
		if ($this->browser)
		{
			// Build the REGEX pattern to match the browser version string within the user agent string.
			$pattern = '#(?<browser>Version|' . $patternBrowser . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';

			// Attempt to find version strings in the user agent string.
			$matches = array();

			if (preg_match_all($pattern, $userAgent, $matches))
			{
				// Do we have both a Version and browser match?
				if (count($matches['browser']) == 2)
				{
					// See whether Version or browser came first, and use the number accordingly.
					if (strripos($userAgent, 'Version') < strripos($userAgent, $patternBrowser))
					{
						$this->browserVersion = $matches['version'][0];
					}
					else
					{
						$this->browserVersion = $matches['version'][1];
					}
				}
				elseif (count($matches['browser']) > 2)
				{
					$key = array_search('Version', $matches['browser']);

					if ($key)
					{
						$this->browserVersion = $matches['version'][$key];
					}
				}
				else
				// We only have a Version or a browser so use what we have.
				{
					$this->browserVersion = $matches['version'][0];
				}
			}
		}

		// Mark this detection routine as run.
		$this->detection['browser'] = true;
	}
protected function detectBrowser($userAgent)
	{
		// Attempt to detect the browser type.  Obviously we are only worried about major browsers.
		if ((stripos($userAgent, 'MSIE') !== false) && (stripos($userAgent, 'Opera') === false))
		{
			$this->browser = self::IE;
			$patternBrowser = 'MSIE';
		}
		elseif ((stripos($userAgent, 'Firefox') !== false) && (stripos($userAgent, 'like Firefox') === false))
		{
			$this->browser = self::FIREFOX;
			$patternBrowser = 'Firefox';
		}
		elseif (stripos($userAgent, 'Chrome') !== false)
		{
			$this->browser = self::CHROME;
			$patternBrowser = 'Chrome';
		}
		elseif (stripos($userAgent, 'Safari') !== false)
		{
			$this->browser = self::SAFARI;
			$patternBrowser = 'Safari';
		}
		elseif (stripos($userAgent, 'Opera') !== false)
		{
			$this->browser = self::OPERA;
			$patternBrowser = 'Opera';
		}

		// If we detected a known browser let's attempt to determine the version.
		if ($this->browser)
		{
			// Build the REGEX pattern to match the browser version string within the user agent string.
			$pattern = '#(?<browser>Version|' . $patternBrowser . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';

			// Attempt to find version strings in the user agent string.
			$matches = array();

			if (preg_match_all($pattern, $userAgent, $matches))
			{
				// Do we have both a Version and browser match?
				if (count($matches['browser']) == 2)
				{
					// See whether Version or browser came first, and use the number accordingly.
					if (strripos($userAgent, 'Version') < strripos($userAgent, $patternBrowser))
					{
						$this->browserVersion = $matches['version'][0];
					}
					else
					{
						$this->browserVersion = $matches['version'][1];
					}
				}
				elseif (count($matches['browser']) > 2)
				{
					$key = array_search('Version', $matches['browser']);

					if ($key)
					{
						$this->browserVersion = $matches['version'][$key];
					}
				}
				else
				// We only have a Version or a browser so use what we have.
				{
					$this->browserVersion = $matches['version'][0];
				}
			}
		}

		// Mark this detection routine as run.
		$this->detection['browser'] = true;
	}
protected function detectBrowser ( $ userAgent ) { // Attempt to detect the browser type.  Obviously we are only worried about major browsers. if ( ( stripos ( $ userAgent , 'MSIE' ) !== false ) && ( stripos ( $ userAgent , 'Opera' ) === false ) ) { $ this -> browser = self :: IE ; $ patternBrowser = 'MSIE' ; } elseif ( ( stripos ( $ userAgent , 'Firefox' ) !== false ) && ( stripos ( $ userAgent , 'like Firefox' ) === false ) ) { $ this -> browser = self :: FIREFOX ; $ patternBrowser = 'Firefox' ; } elseif ( stripos ( $ userAgent , 'Chrome' ) !== false ) { $ this -> browser = self :: CHROME ; $ patternBrowser = 'Chrome' ; } elseif ( stripos ( $ userAgent , 'Safari' ) !== false ) { $ this -> browser = self :: SAFARI ; $ patternBrowser = 'Safari' ; } elseif ( stripos ( $ userAgent , 'Opera' ) !== false ) { $ this -> browser = self :: OPERA ; $ patternBrowser = 'Opera' ; } // If we detected a known browser let's attempt to determine the version. if ( $ this -> browser ) { // Build the REGEX pattern to match the browser version string within the user agent string. $ pattern = '#(?<browser>Version|' . $ patternBrowser . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#' ; // Attempt to find version strings in the user agent string. $ matches = array ( ) ; if ( preg_match_all ( $ pattern , $ userAgent , $ matches ) ) { // Do we have both a Version and browser match? if ( count ( $ matches [ 'browser' ] ) == 2 ) { // See whether Version or browser came first, and use the number accordingly. if ( strripos ( $ userAgent , 'Version' ) < strripos ( $ userAgent , $ patternBrowser ) ) { $ this -> browserVersion = $ matches [ 'version' ] [ 0 ] ; } else { $ this -> browserVersion = $ matches [ 'version' ] [ 1 ] ; } } elseif ( count ( $ matches [ 'browser' ] ) > 2 ) { $ key = array_search ( 'Version' , $ matches [ 'browser' ] ) ; if ( $ key ) { $ this -> browserVersion = $ matches [ 'version' ] [ $ key ] ; } } else // We only have a Version or a browser so use what we have. { $ this -> browserVersion = $ matches [ 'version' ] [ 0 ] ; } } } // Mark this detection routine as run. $ this -> detection [ 'browser' ] = true ; }
Detects the client browser and version in a user agent string.

@param   string  $userAgent  The user-agent string to parse.

@return  void

@since   1.0
Detects the client browser and version in a user agent string .