Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: Detect.php
- ===================================================================
- RCS file: /repository/pear/Net_UserAgent/Detect.php,v
- retrieving revision 1.27
- diff -u -r1.27 Detect.php
- --- Detect.php 12 Oct 2008 00:33:10 -0000 1.27
- +++ Detect.php 14 Oct 2008 09:24:17 -0000
- @@ -1,37 +1,38 @@
- <?php
- -// {{{ license
- -
- -// +----------------------------------------------------------------------+
- -// | PHP version 4.2 |
- -// +----------------------------------------------------------------------+
- -// | Copyright (c) 1997-2007 The PHP Group |
- -// +----------------------------------------------------------------------+
- -// | This source file is subject to version 2.0 of the PHP license, |
- -// | that is bundled with this package in the file LICENSE, and is |
- -// | available at through the world-wide-web at |
- -// | http://www.php.net/license/2_02.txt. |
- -// | If you did not receive a copy of the PHP license and are unable to |
- -// | obtain it through the world-wide-web, please send a note to |
- -// | license@php.net so we can mail you a copy immediately. |
- -// +----------------------------------------------------------------------+
- -// | Authors: Dan Allen <dan@mojavelinux.com> |
- -// | Jason Rust <jrust@php.net> |
- -// +----------------------------------------------------------------------+
- -
- -// $Id: Detect.php,v 1.27 2008/10/12 00:33:10 jrust Exp $
- +/**
- + * Net_UserAgent_Detect.php
- + *
- + * PHP version 4.2
- + *
- + * Copyright (c) 1997-2003 The PHP Group
- + *
- + * This source file is subject to version 2.0 of the PHP license,
- + * that is bundled with this package in the file LICENSE, and is
- + * available at through the world-wide-web at
- + * http://www.php.net/license/2_02.txt.
- + * If you did not receive a copy of the PHP license and are unable to
- + * obtain it through the world-wide-web, please send a note to
- + * license@php.net so we can mail you a copy immediately.
- + *
- + * @category Net
- + * @package Net_UserAgent
- + * @author Dan Allen <dan@mojavelinux.com>
- + * @author Jason Rust <jrust@php.net>
- + * @license http://www.php.net/license/2_02.txt PHP 2.0 Licence
- + * @version CVS: $Id: AllTests.php,v 1.6 2008/09/18 17:31:48 till Exp $
- + * @link http://pear.php.net/package/Net_UserAgent_Detect
- + */
- -// }}}
- // {{{ constants
- -define('NET_USERAGENT_DETECT_BROWSER', 'browser');
- -define('NET_USERAGENT_DETECT_OS', 'os');
- +define('NET_USERAGENT_DETECT_BROWSER', 'browser');
- +define('NET_USERAGENT_DETECT_OS', 'os');
- define('NET_USERAGENT_DETECT_FEATURES', 'features');
- -define('NET_USERAGENT_DETECT_QUIRKS', 'quirks');
- -define('NET_USERAGENT_DETECT_ACCEPT', 'accept');
- -define('NET_USERAGENT_DETECT_ALL', 'all');
- +define('NET_USERAGENT_DETECT_QUIRKS', 'quirks');
- +define('NET_USERAGENT_DETECT_ACCEPT', 'accept');
- +define('NET_USERAGENT_DETECT_ALL', 'all');
- // }}}
- -// {{{ class Net_UserAgent_Detect
- /**
- * The Net_UserAgent_Detect object does a number of tests on an HTTP user
- @@ -45,17 +46,25 @@
- * This module had many influences from the lib/Browser.php code in
- * version 1.3 of Horde.
- *
- + * @category Net
- + * @package Net_UserAgent
- * @author Jason Rust <jrust@php.net>
- * @author Dan Allen <dan@mojavelinux.com>
- * @author Chuck Hagenbuch <chuck@horde.org>
- * @author Jon Parise <jon@horde.org>
- - * @package Net_UserAgent
- + * @license http://www.php.net/license/2_02.txt PHP 2.0 Licence
- + * @link http://pear.php.net/package/Net_UserAgent_Detect
- */
- -
- -// }}}
- -class Net_UserAgent_Detect {
- +class Net_UserAgent_Detect
- +{
- // {{{ constructor
- + /**
- + * Class constructor
- + *
- + * @param string $in_userAgent (optional) User agent override.
- + * @param mixed $in_detect (optional) The level of checking to do.
- + */
- function Net_UserAgent_Detect($in_userAgent = null, $in_detect = null)
- {
- $this->detect($in_userAgent, $in_detect);
- @@ -67,6 +76,9 @@
- /**
- * To be used in place of the contructor to return only open instance.
- *
- + * @param string $in_userAgent (optional) User agent override.
- + * @param mixed $in_detect (optional) The level of checking to do.
- + *
- * @access public
- * @return object Net_UserAgent_Detect instance
- */
- @@ -96,8 +108,8 @@
- * this class statically then set all the parameters using th
- * setOption()
- *
- - * @param string $in_userAgent (optional) User agent override.
- - * @param mixed $in_detect (optional) The level of checking to do.
- + * @param string $in_userAgent (optional) User agent override.
- + * @param mixed $in_detect (optional) The level of checking to do.
- *
- * @access public
- * @return void
- @@ -113,8 +125,13 @@
- $hasRun = true;
- // {{{ set up static properties
- - $in_userAgent = isset($options['userAgent']) && is_null($in_userAgent) ? $options['userAgent'] : $in_userAgent;
- - $in_detect = isset($options['detectOptions']) && is_null($in_detect) ? $options['detectOptions'] : $in_detect;
- + if (isset($options['userAgent']) && is_null($in_userAgent)) {
- + $in_userAgent = $options['userAgent'];
- + }
- +
- + if (isset($options['detectOptions']) && is_null($in_detect)) {
- + $in_detect = $options['detectOptions'];
- + }
- // User agent string that is being analyzed
- $userAgent = &Net_UserAgent_Detect::_getStaticProperty('userAgent');
- @@ -182,15 +199,12 @@
- if (is_null($in_userAgent)) {
- if (isset($_SERVER['HTTP_USER_AGENT'])) {
- $userAgent = $_SERVER['HTTP_USER_AGENT'];
- - }
- - elseif (isset($GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'])) {
- + } elseif (isset($GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'])) {
- $userAgent = $GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'];
- - }
- - else {
- + } else {
- $userAgent = '';
- }
- - }
- - else {
- + } else {
- $userAgent = $in_userAgent;
- }
- @@ -202,15 +216,12 @@
- NET_USERAGENT_DETECT_OS, NET_USERAGENT_DETECT_FEATURES,
- NET_USERAGENT_DETECT_QUIRKS, NET_USERAGENT_DETECT_ACCEPT,
- NET_USERAGENT_DETECT_ALL);
- +
- $detect = is_null($in_detect) ? NET_USERAGENT_DETECT_ALL : $in_detect;
- +
- settype($detect, 'array');
- - foreach($detectOptions as $option) {
- - if (in_array($option, $detect)) {
- - $detectFlags[$option] = true;
- - }
- - else {
- - $detectFlags[$option] = false;
- - }
- + foreach ($detectOptions as $option) {
- + $detectFlags[$option] = in_array($option, $detect);
- }
- // initialize the arrays of browsers and operating systems
- @@ -228,30 +239,37 @@
- // Browser type
- if ($detectFlags[NET_USERAGENT_DETECT_ALL] || $detectFlags[NET_USERAGENT_DETECT_BROWSER]) {
- - $browser['webdav'] = ($agt == 'microsoft data access internet publishing provider dav' || $agt == 'microsoft data access internet publishing provider protocol discovery');
- - $browser['konq'] = (strpos($agt, 'konqueror') !== false || strpos($agt, 'safari') !== false );
- + $browser['webdav'] = ($agt == 'microsoft data access internet publishing provider dav' || $agt == 'microsoft data access internet publishing provider protocol discovery');
- + $browser['konq'] = (strpos($agt, 'konqueror') !== false || strpos($agt, 'safari') !== false );
- $browser['safari'] = (strpos($agt, 'safari') !== false);
- $browser['chrome'] = (strpos($agt, 'chrome') !== false);
- +
- $browser['safari_mobile'] = (strpos($agt, 'safari') !== false && strpos($agt, 'mobile') !== false );
- - $browser['text'] = strpos($agt, 'links') !== false || strpos($agt, 'lynx') !== false || strpos($agt, 'w3m') !== false;
- - $browser['ns'] = strpos($agt, 'mozilla') !== false && !(strpos($agt, 'spoofer') !== false) && !(strpos($agt, 'compatible') !== false) && !(strpos($agt, 'hotjava') !== false) && !(strpos($agt, 'opera') !== false) && !(strpos($agt, 'webtv') !== false) ? 1 : 0;
- - $browser['netgem'] = strpos($agt, 'netgem') !== false;
- - $browser['icab'] = strpos($agt, 'icab') !== false;
- - $browser['ns2'] = $browser['ns'] && $majorVersion == 2;
- - $browser['ns3'] = $browser['ns'] && $majorVersion == 3;
- - $browser['ns4'] = $browser['ns'] && $majorVersion == 4;
- - $browser['ns4up'] = $browser['ns'] && $majorVersion >= 4;
- +
- + $browser['text'] = strpos($agt, 'links') !== false || strpos($agt, 'lynx') !== false || strpos($agt, 'w3m') !== false;
- + $browser['ns'] = strpos($agt, 'mozilla') !== false && !(strpos($agt, 'spoofer') !== false) && !(strpos($agt, 'compatible') !== false) && !(strpos($agt, 'hotjava') !== false) && !(strpos($agt, 'opera') !== false) && !(strpos($agt, 'webtv') !== false) ? 1 : 0;
- + $browser['netgem'] = strpos($agt, 'netgem') !== false;
- + $browser['icab'] = strpos($agt, 'icab') !== false;
- + $browser['ns2'] = $browser['ns'] && $majorVersion == 2;
- + $browser['ns3'] = $browser['ns'] && $majorVersion == 3;
- + $browser['ns4'] = $browser['ns'] && $majorVersion == 4;
- + $browser['ns4up'] = $browser['ns'] && $majorVersion >= 4;
- +
- // determine if this is a Netscape Navigator
- - $browser['nav'] = $browser['belowns6'] = $browser['ns'] && $majorVersion < 5;
- - $browser['ns6'] = !$browser['konq'] && $browser['ns'] && $majorVersion == 5;
- - $browser['ns6up'] = $browser['ns6'] && $majorVersion >= 5;
- - $browser['gecko'] = strpos($agt, 'gecko') !== false && !$browser['konq'];
- - $browser['firefox'] = $browser['gecko'] && strpos($agt, 'firefox') !== false;
- + $browser['belowns6'] = $browser['ns'] && $majorVersion < 5;
- +
- + $browser['nav'] = $browser['belowns6'];
- + $browser['ns6'] = !$browser['konq'] && $browser['ns'] && $majorVersion == 5;
- + $browser['ns6up'] = $browser['ns6'] && $majorVersion >= 5;
- +
- + $browser['gecko'] = strpos($agt, 'gecko') !== false && !$browser['konq'];
- + $browser['firefox'] = $browser['gecko'] && strpos($agt, 'firefox') !== false;
- $browser['firefox0.x'] = $browser['firefox'] && strpos($agt, 'firefox/0.') !== false;
- $browser['firefox1.x'] = $browser['firefox'] && strpos($agt, 'firefox/1.') !== false;
- $browser['firefox1.5'] = $browser['firefox'] && strpos($agt, 'firefox/1.5') !== false;
- $browser['firefox2.x'] = $browser['firefox'] && strpos($agt, 'firefox/2.') !== false;
- $browser['firefox3.x'] = $browser['firefox'] && strpos($agt, 'firefox/3.') !== false;
- +
- $browser['ie'] = strpos($agt, 'msie') !== false && !(strpos($agt, 'opera') !== false);
- $browser['ie3'] = $browser['ie'] && $majorVersion < 4;
- $browser['ie4'] = $browser['ie'] && $majorVersion == 4 && (strpos($agt, 'msie 4') !== false);
- @@ -264,22 +282,26 @@
- $browser['ie6up'] = $browser['ie5up'] && !$browser['ie5'] && !$browser['ie5_5'];
- $browser['ie7'] = strpos($agt, 'msie 7') !== false;
- $browser['ie7up'] = $browser['ie6up'] && !$browser['ie6'];
- - $browser['belowie6']= $browser['ie'] && !$browser['ie6up'];
- - $browser['opera'] = strpos($agt, 'opera') !== false;
- - $browser['opera2'] = strpos($agt, 'opera 2') !== false || strpos($agt, 'opera/2') !== false;
- - $browser['opera3'] = strpos($agt, 'opera 3') !== false || strpos($agt, 'opera/3') !== false;
- - $browser['opera4'] = strpos($agt, 'opera 4') !== false || strpos($agt, 'opera/4') !== false;
- - $browser['opera5'] = strpos($agt, 'opera 5') !== false || strpos($agt, 'opera/5') !== false;
- - $browser['opera6'] = strpos($agt, 'opera 6') !== false || strpos($agt, 'opera/6') !== false;
- - $browser['opera7'] = strpos($agt, 'opera 7') !== false || strpos($agt, 'opera/7') !== false;
- - $browser['opera8'] = strpos($agt, 'opera 8') !== false || strpos($agt, 'opera/8') !== false;
- - $browser['opera9'] = strpos($agt, 'opera 9') !== false || strpos($agt, 'opera/9') !== false;
- +
- + $browser['belowie6'] = $browser['ie'] && !$browser['ie6up'];
- +
- + $browser['opera'] = strpos($agt, 'opera') !== false;
- + $browser['opera2'] = strpos($agt, 'opera 2') !== false || strpos($agt, 'opera/2') !== false;
- + $browser['opera3'] = strpos($agt, 'opera 3') !== false || strpos($agt, 'opera/3') !== false;
- + $browser['opera4'] = strpos($agt, 'opera 4') !== false || strpos($agt, 'opera/4') !== false;
- + $browser['opera5'] = strpos($agt, 'opera 5') !== false || strpos($agt, 'opera/5') !== false;
- + $browser['opera6'] = strpos($agt, 'opera 6') !== false || strpos($agt, 'opera/6') !== false;
- + $browser['opera7'] = strpos($agt, 'opera 7') !== false || strpos($agt, 'opera/7') !== false;
- + $browser['opera8'] = strpos($agt, 'opera 8') !== false || strpos($agt, 'opera/8') !== false;
- + $browser['opera9'] = strpos($agt, 'opera 9') !== false || strpos($agt, 'opera/9') !== false;
- $browser['opera5up'] = $browser['opera'] && !$browser['opera2'] && !$browser['opera3'] && !$browser['opera4'];
- $browser['opera6up'] = $browser['opera'] && !$browser['opera2'] && !$browser['opera3'] && !$browser['opera4'] && !$browser['opera5'];
- $browser['opera7up'] = $browser['opera'] && !$browser['opera2'] && !$browser['opera3'] && !$browser['opera4'] && !$browser['opera5'] && !$browser['opera6'];
- $browser['opera8up'] = $browser['opera'] && !$browser['opera2'] && !$browser['opera3'] && !$browser['opera4'] && !$browser['opera5'] && !$browser['opera6'] && !$browser['opera7'];
- $browser['opera9up'] = $browser['opera'] && !$browser['opera2'] && !$browser['opera3'] && !$browser['opera4'] && !$browser['opera5'] && !$browser['opera6'] && !$browser['opera7'] && !$browser['opera8'];
- +
- $browser['belowopera8'] = $browser['opera'] && !$browser['opera8up'];
- +
- $browser['aol'] = strpos($agt, 'aol') !== false;
- $browser['aol3'] = $browser['aol'] && $browser['ie3'];
- $browser['aol4'] = $browser['aol'] && $browser['ie4'];
- @@ -289,10 +311,11 @@
- $browser['aol8'] = strpos($agt, 'aol 8') !== false || strpos($agt, 'aol8') !== false;
- $browser['webtv'] = strpos($agt, 'webtv') !== false;
- $browser['aoltv'] = $browser['tvnavigator'] = strpos($agt, 'navio') !== false || strpos($agt, 'navio_aoltv') !== false;
- - $browser['hotjava'] = strpos($agt, 'hotjava') !== false;
- - $browser['hotjava3'] = $browser['hotjava'] && $majorVersion == 3;
- +
- + $browser['hotjava'] = strpos($agt, 'hotjava') !== false;
- + $browser['hotjava3'] = $browser['hotjava'] && $majorVersion == 3;
- $browser['hotjava3up'] = $browser['hotjava'] && $majorVersion >= 3;
- - $browser['iemobile'] = strpos($agt, 'iemobile') !== false || strpos($agt, 'windows ce') !== false && (strpos($agt, 'ppc') !== false || strpos($agt, 'smartphone') !== false);
- + $browser['iemobile'] = strpos($agt, 'iemobile') !== false || strpos($agt, 'windows ce') !== false && (strpos($agt, 'ppc') !== false || strpos($agt, 'smartphone') !== false);
- }
- if ($detectFlags[NET_USERAGENT_DETECT_ALL] ||
- @@ -300,48 +323,41 @@
- // Javascript Check
- if ($browser['ns2'] || $browser['ie3']) {
- Net_UserAgent_Detect::setFeature('javascript', 1.0);
- - }
- - elseif ($browser['iemobile']) {
- - // no javascript
- - }
- - elseif ($browser['opera5up']) {
- + } elseif ($browser['iemobile']) {
- + // no javascript
- + } elseif ($browser['opera5up']) {
- Net_UserAgent_Detect::setFeature('javascript', 1.3);
- - }
- - elseif ($browser['opera'] || $browser['ns3']) {
- + } elseif ($browser['opera'] || $browser['ns3']) {
- Net_UserAgent_Detect::setFeature('javascript', 1.1);
- - }
- - elseif (($browser['ns4'] && ($version <= 4.05)) || $browser['ie4']) {
- + } elseif (($browser['ns4'] && ($version <= 4.05)) || $browser['ie4']) {
- Net_UserAgent_Detect::setFeature('javascript', 1.2);
- - }
- - elseif (($browser['ie5up'] && strpos($agt, 'mac') !== false) || $browser['konq']) {
- + } elseif (($browser['ie5up'] && strpos($agt, 'mac') !== false) || $browser['konq']) {
- Net_UserAgent_Detect::setFeature('javascript', 1.4);
- - }
- - // I can't believe IE6 still has javascript 1.3, what a shitty browser
- - elseif (($browser['ns4'] && ($version > 4.05)) || $browser['ie5up'] || $browser['hotjava3up']) {
- + } elseif (($browser['ns4'] && ($version > 4.05)) || $browser['ie5up'] || $browser['hotjava3up']) {
- + // I can't believe IE6 still has javascript 1.3, what a shitty browser
- Net_UserAgent_Detect::setFeature('javascript', 1.3);
- - }
- - elseif ($browser['ns6up'] || $browser['gecko'] || $browser['netgem']) {
- + } elseif ($browser['ns6up'] || $browser['gecko'] || $browser['netgem']) {
- Net_UserAgent_Detect::setFeature('javascript', 1.5);
- }
- }
- /** OS Check **/
- if ($detectFlags[NET_USERAGENT_DETECT_ALL] || $detectFlags[NET_USERAGENT_DETECT_OS]) {
- - $os['win'] = strpos($agt, 'win') !== false || strpos($agt, '16bit') !== false;
- - $os['win95'] = strpos($agt, 'win95') !== false || strpos($agt, 'windows 95') !== false;
- - $os['win16'] = strpos($agt, 'win16') !== false || strpos($agt, '16bit') !== false || strpos($agt, 'windows 3.1') !== false || strpos($agt, 'windows 16-bit') !== false;
- - $os['win31'] = strpos($agt, 'windows 3.1') !== false || strpos($agt, 'win16') !== false || strpos($agt, 'windows 16-bit') !== false;
- - $os['winme'] = strpos($agt, 'win 9x 4.90') !== false;
- - $os['wince'] = strpos($agt, 'windows ce') !== false;
- - $os['win2k'] = strpos($agt, 'windows nt 5.0') !== false;
- - $os['winxp'] = strpos($agt, 'windows nt 5.1') !== false;
- - $os['win2003'] = strpos($agt, 'windows nt 5.2') !== false;
- - $os['win98'] = strpos($agt, 'win98') !== false || strpos($agt, 'windows 98') !== false;
- - $os['win9x'] = $os['win95'] || $os['win98'];
- - $os['winnt'] = (strpos($agt, 'winnt') !== false || strpos($agt, 'windows nt') !== false) && strpos($agt, 'windows nt 5') === false;
- - $os['win32'] = $os['win95'] || $os['winnt'] || $os['win98'] || $majorVersion >= 4 && strpos($agt, 'win32') !== false || strpos($agt, '32bit') !== false;
- - $os['os2'] = strpos($agt, 'os/2') !== false || strpos($agt, 'ibm-webexplorer') !== false;
- - $os['mac'] = strpos($agt, 'mac') !== false;
- + $os['win'] = strpos($agt, 'win') !== false || strpos($agt, '16bit') !== false;
- + $os['win95'] = strpos($agt, 'win95') !== false || strpos($agt, 'windows 95') !== false;
- + $os['win16'] = strpos($agt, 'win16') !== false || strpos($agt, '16bit') !== false || strpos($agt, 'windows 3.1') !== false || strpos($agt, 'windows 16-bit') !== false;
- + $os['win31'] = strpos($agt, 'windows 3.1') !== false || strpos($agt, 'win16') !== false || strpos($agt, 'windows 16-bit') !== false;
- + $os['winme'] = strpos($agt, 'win 9x 4.90') !== false;
- + $os['wince'] = strpos($agt, 'windows ce') !== false;
- + $os['win2k'] = strpos($agt, 'windows nt 5.0') !== false;
- + $os['winxp'] = strpos($agt, 'windows nt 5.1') !== false;
- + $os['win2003'] = strpos($agt, 'windows nt 5.2') !== false;
- + $os['win98'] = strpos($agt, 'win98') !== false || strpos($agt, 'windows 98') !== false;
- + $os['win9x'] = $os['win95'] || $os['win98'];
- + $os['winnt'] = (strpos($agt, 'winnt') !== false || strpos($agt, 'windows nt') !== false) && strpos($agt, 'windows nt 5') === false;
- + $os['win32'] = $os['win95'] || $os['winnt'] || $os['win98'] || $majorVersion >= 4 && strpos($agt, 'win32') !== false || strpos($agt, '32bit') !== false;
- + $os['os2'] = strpos($agt, 'os/2') !== false || strpos($agt, 'ibm-webexplorer') !== false;
- + $os['mac'] = strpos($agt, 'mac') !== false;
- $os['mac68k'] = $os['mac'] && (strpos($agt, '68k') !== false || strpos($agt, '68000') !== false);
- $os['macppc'] = $os['mac'] && (strpos($agt, 'ppc') !== false || strpos($agt, 'powerpc') !== false);
- $os['sun'] = strpos($agt, 'sunos') !== false;
- @@ -464,11 +480,14 @@
- * or an array of options. Default is NET_USERAGENT_DETECT_ALL.
- *
- * @param string $in_field The option field (userAgent or detectOptions)
- - * @param mixed $in_value The value for the field
- + * @param mixed $in_value The value for the field
- + *
- + * @return void
- */
- function setOption($in_field, $in_value)
- {
- $options = &Net_UserAgent_Detect::_getStaticProperty('options');
- +
- $options[$in_field] = $in_value;
- }
- @@ -481,7 +500,7 @@
- * Given one of the flags listed in the properties, this function will return
- * the value associated with that flag.
- *
- - * @param string $in_match flag to lookup
- + * @param string $in_match flag to lookup
- *
- * @access public
- * @return boolean whether or not the browser satisfies this flag
- @@ -490,7 +509,12 @@
- {
- Net_UserAgent_Detect::detect();
- $browser = &Net_UserAgent_Detect::_getStaticProperty('browser');
- - return isset($browser[strtolower($in_match)]) ? $browser[strtolower($in_match)] : false;
- +
- + if (isset($browser[strtolower($in_match)])) {
- + return $browser[strtolower($in_match)];
- + }
- +
- + return false;
- }
- // }}}
- @@ -502,7 +526,7 @@
- * an expect list and returning the string of the first match, so put the important
- * ones first in the array.
- *
- - * @param array $in_expectList the browser flags to search for
- + * @param array $in_expectList the browser flags to search for
- *
- * @access public
- * @return string first flag that matches
- @@ -511,7 +535,7 @@
- {
- Net_UserAgent_Detect::detect();
- $browser = &Net_UserAgent_Detect::_getStaticProperty('browser');
- - foreach((array) $in_expectList as $brwsr) {
- + foreach ((array) $in_expectList as $brwsr) {
- if (!empty($browser[strtolower($brwsr)])) {
- return $brwsr;
- }
- @@ -530,7 +554,7 @@
- * to the appropriate flag. Be sure to pass in the flags in ascending order
- * if you want a basic matches first, followed by more detailed matches.
- *
- - * @param array $in_vendorStrings (optional) array of flags matched with vendor strings
- + * @param array $in_vendorStrings (optional) array of flags matched with vendor strings
- *
- * @access public
- * @return string vendor string matches appropriate flag
- @@ -563,7 +587,7 @@
- Net_UserAgent_Detect::detect();
- $browser = &Net_UserAgent_Detect::_getStaticProperty('browser');
- - foreach((array) $in_vendorStrings as $flag => $string) {
- + foreach ((array) $in_vendorStrings as $flag => $string) {
- if (!empty($browser[$flag])) {
- $vendorString = $string;
- }
- @@ -572,7 +596,7 @@
- // if there are no matches just use the user agent leading idendifier (usually Mozilla)
- if (!isset($vendorString)) {
- $leadingIdentifier = &Net_UserAgent_Detect::_getStaticProperty('leadingIdentifier');
- - $vendorString = $leadingIdentifier;
- + $vendorString = $leadingIdentifier;
- }
- return $vendorString;
- @@ -639,7 +663,7 @@
- * Given one of the flags listed in the properties, this function will return
- * the value associated with that flag for the operating system.
- *
- - * @param string $in_match flag to lookup
- + * @param string $in_match flag to lookup
- *
- * @access public
- * @return boolean whether or not the OS satisfies this flag
- @@ -648,7 +672,12 @@
- {
- Net_UserAgent_Detect::detect();
- $os = &Net_UserAgent_Detect::_getStaticProperty('os');
- - return isset($os[strtolower($in_match)]) ? $os[strtolower($in_match)] : false;
- +
- + if (isset($os[strtolower($in_match)])) {
- + return $os[strtolower($in_match)];
- + }
- +
- + return false;
- }
- // }}}
- @@ -657,8 +686,10 @@
- /**
- * Since simply returning the "os" is somewhat ambiguous since there
- * are different ways to classify the browser, this function works by taking
- - * an expect list and returning the string of the first match, so put the important
- - * ones first in the array.
- + * an expect list and returning the string of the first match, so put the
- + * important ones first in the array.
- + *
- + * @param string[] $in_expectList Expected matches.
- *
- * @access public
- * @return string first flag that matches
- @@ -667,7 +698,7 @@
- {
- Net_UserAgent_Detect::detect();
- $os = &Net_UserAgent_Detect::_getStaticProperty('os');
- - foreach((array) $in_expectList as $expectOs) {
- + foreach ((array) $in_expectList as $expectOs) {
- if (!empty($os[strtolower($expectOs)])) {
- return $expectOs;
- }
- @@ -686,7 +717,7 @@
- * to the appropriate flag. Be sure to pass in the flags in ascending order
- * if you want a basic matches first, followed by more detailed matches.
- *
- - * @param array $in_osStrings (optional) array of flags matched with os strings
- + * @param array $in_osStrings (optional) array of flags matched with os strings
- *
- * @access public
- * @return string os string matches appropriate flag
- @@ -711,7 +742,7 @@
- $osString = 'Unknown';
- $os = &Net_UserAgent_Detect::_getStaticProperty('os');
- - foreach((array) $in_osStrings as $flag => $string) {
- + foreach ((array) $in_osStrings as $flag => $string) {
- if (!empty($os[$flag])) {
- $osString = $string;
- }
- @@ -730,7 +761,7 @@
- * mechanism allows the coder to determine if an excepetion must
- * be made with the current client.
- *
- - * @param string $in_quirk The quirk to set
- + * @param string $in_quirk The quirk to set
- * @param string $in_hasQuirk (optional) Does the browser have the quirk?
- *
- * @access public
- @@ -738,8 +769,9 @@
- */
- function setQuirk($in_quirk, $in_hasQuirk = true)
- {
- - $quirks = &Net_UserAgent_Detect::_getStaticProperty('quirks');
- + $quirks = &Net_UserAgent_Detect::_getStaticProperty('quirks');
- $hasQuirk = !empty($in_hasQuirk);
- +
- $quirks[strtolower($in_quirk)] = $hasQuirk;
- }
- @@ -782,7 +814,12 @@
- {
- Net_UserAgent_Detect::detect();
- $quirks = &Net_UserAgent_Detect::_getStaticProperty('quirks');
- - return isset($quirks[strtolower($in_quirk)]) ? $quirks[strtolower($in_quirk)] : null;
- +
- + if (isset($quirks[strtolower($in_quirk)])) {
- + return $quirks[strtolower($in_quirk)];
- + }
- +
- + return null;
- }
- // }}}
- @@ -795,7 +832,7 @@
- * helps keep track of the core features of a client, such as if the client
- * supports dhtml, dom, javascript, etc.
- *
- - * @param string $in_feature The feature to set
- + * @param string $in_feature The feature to set
- * @param string $in_hasFeature (optional) Does the browser have the feature?
- *
- * @access public
- @@ -804,6 +841,7 @@
- function setFeature($in_feature, $in_hasFeature = true)
- {
- $features = &Net_UserAgent_Detect::_getStaticProperty('features');
- +
- $features[strtolower($in_feature)] = $in_hasFeature;
- }
- @@ -846,7 +884,11 @@
- {
- Net_UserAgent_Detect::detect();
- $features = &Net_UserAgent_Detect::_getStaticProperty('features');
- - return isset($features[strtolower($in_feature)]) ? $features[strtolower($in_feature)] : null;
- +
- + if (isset($features[strtolower($in_feature)])) {
- + return $features[strtolower($in_feature)];
- + }
- + return null;
- }
- // }}}
- @@ -862,8 +904,8 @@
- * you would pass in your allowed languages and see if any of the
- * languages set in the browser match.
- *
- - * @param string $in_expectList values to check
- - * @param string $in_type type of accept
- + * @param string $in_expectList values to check
- + * @param string $in_type type of accept
- *
- * @access public
- * @return string the first matched value
- @@ -873,9 +915,10 @@
- Net_UserAgent_Detect::detect();
- $type = strtolower($in_type);
- - if ($type == 'mimetype' || $type == 'language' || $type == 'charset' || $type == 'encoding') {
- + if ($type == 'mimetype' || $type == 'language'
- + || $type == 'charset' || $type == 'encoding') {
- $typeArray = &Net_UserAgent_Detect::_getStaticProperty($type);
- - foreach((array) $in_expectList as $match) {
- + foreach ((array) $in_expectList as $match) {
- if (!empty($typeArray[$match])) {
- return $match;
- }
- @@ -896,8 +939,8 @@
- * This function takes and array of accepted values for the type and
- * records them for retrieval.
- *
- - * @param array $in_values values of the accept type
- - * @param string $in_type type of accept
- + * @param array $in_values values of the accept type
- + * @param string $in_type type of accept
- *
- * @access public
- * @return void
- @@ -906,9 +949,10 @@
- {
- $type = strtolower($in_type);
- - if ($type == 'mimetype' || $type == 'language' || $type == 'charset' || $type == 'encoding') {
- + if ($type == 'mimetype' || $type == 'language'
- + || $type == 'charset' || $type == 'encoding') {
- $typeArray = &Net_UserAgent_Detect::_getStaticProperty($type);
- - foreach((array) $in_values as $value) {
- + foreach ((array) $in_values as $value) {
- $typeArray[$value] = true;
- }
- }
- @@ -925,15 +969,16 @@
- * This function checks the array for the given type and determines if
- * the browser accepts it.
- *
- - * @param string $in_value values to check
- - * @param string $in_type type of accept
- + * @param string $in_value values to check
- + * @param string $in_type type of accept
- *
- * @access public
- * @return bool whether or not the value is accept for this type
- */
- function hasAcceptType($in_value, $in_type)
- {
- - return (bool) Net_UserAgent_Detect::getAcceptType((array) $in_value, $in_type);
- + return (bool) Net_UserAgent_Detect::getAcceptType((array) $in_value,
- + $in_type);
- }
- // }}}
- @@ -959,8 +1004,9 @@
- * Copy of getStaticProperty() from PEAR.php to avoid having to
- * include PEAR.php
- *
- + * @param string $var The variable to retrieve.
- + *
- * @access private
- - * @param string $var The variable to retrieve.
- * @return mixed A reference to the variable. If not set it will be
- * auto initialised to NULL.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement