[pLog-svn] r851 - plog/trunk/class/net/http/phpsniff

oscar at devel.plogworld.net oscar at devel.plogworld.net
Wed Jan 26 19:22:38 GMT 2005


Author: oscar
Date: 2005-01-26 19:22:38 +0000 (Wed, 26 Jan 2005)
New Revision: 851

Modified:
   plog/trunk/class/net/http/phpsniff/phpSniff.class.php
Log:
fixed issue http://bugs.plogworld.net/view.php?id=170

Modified: plog/trunk/class/net/http/phpsniff/phpSniff.class.php
===================================================================
--- plog/trunk/class/net/http/phpsniff/phpSniff.class.php	2005-01-26 19:20:07 UTC (rev 850)
+++ plog/trunk/class/net/http/phpsniff/phpSniff.class.php	2005-01-26 19:22:38 UTC (rev 851)
@@ -1,198 +1,198 @@
-<?php
-/*******************************************************************************
-	$Id: phpSniff.class.php,v 1.21 2003/07/02 23:28:35 epsilon7 Exp $
-    
-    phpSniff: HTTP_USER_AGENT Client Sniffer for PHP
-	Copyright (C) 2001 Roger Raymond ~ epsilon7 at users.sourceforge.net
-
-	This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*******************************************************************************/
-require_once('phpSniff.core.php');
-
-//===============================================================
-//  the following defines are used to create the short
-//  browser name used throughout the script.
-//  change these to suit your needs
-//===============================================================
-
-class phpSniff extends phpSniff_core
-{   var $_version = '2.1.3';
-	/**
-     *  Configuration
-     *
-     *  $_temp_file_path
-     *      default : /tmp/
-     *      desc    : directory writable by the server to store cookie check files.
-     *              : trailing slash is needed. only used if you use the check cookie routine
-     *
-     *  $_check_cookies
-     *      default : null
-     *      desc    : Allow for the script to redirect the browser in order
-     *              : to check for cookies.   In order for this to work, this
-     *              : class must be instantiated before any headers are sent.
-     *
-     *  $_default_language
-     *      default : en-us
-     *      desc    : language to report as if no languages are found
-     *
-     *  $_allow_masquerading
-     *      default : null
-     *      desc    : Allow for browser to Masquerade as another.
-     *              : (ie: Opera identifies as MSIE 5.0)
-     *
-     *  $_browsers
-     *      desc    : 2D Array of browsers we wish to search for
-     *              : in key => value pairs.
-     *              : key   = browser to search for [as in HTTP_USER_AGENT]
-     *              : value = value to return as 'browser' property
-     *
-     *  $_javascript_versions
-     *      desc    : 2D Array of javascript version supported by which browser
-     *              : in key => value pairs.
-     *              : key   = javascript version
-     *              : value = search parameter for browsers that support the
-     *              :         javascript version listed in the key (comma delimited)
-     *              :         note: the search parameters rely on the values
-     *              :               set in the $_browsers array
-     *
-	 *  $_browser_features
-     *      desc    : 2D Array of browser features supported by which browser
-     *              : in key => value pairs.
-     *              : key   = feature
-     *              : value = search parameter for browsers that support the
-     *              :         feature listed in the key (comma delimited)
-     *              :         note: the search parameters rely on the values
-     *              :               set in the $_browsers array
-	 *
-	 *  $_browser_quirks
-     *      desc    : 2D Array of browser quirks present in which browser
-     *              : in key => value pairs.
-     *              : key   = quirk
-     *              : value = search parameter for browsers that feature the
-     *              :         quirk listed in the key (comma delimited)
-     *              :         note: the search parameters rely on the values
-     *              :               set in the $_browsers array
-	 **/
-
-    var $_temp_file_path        = '/tmp/'; // with trailing slash
-    var $_check_cookies         = NULL;
-    var $_default_language      = 'en-us';
-    var $_allow_masquerading    = NULL;
-    var $_php_version           = '';
-    
-    var $_browsers = array(
-        'microsoft internet explorer' => 'IE',
-        'msie'                        => 'IE',
-        'netscape6'                   => 'NS',
-        'netscape'                    => 'NS',
-        'galeon'                      => 'GA',
-        'phoenix'                     => 'PX',
-        'mozilla firebird'            => 'FB',
-        'firebird'                    => 'FB',
-        'chimera'                     => 'CH',
-        'camino'                      => 'CA',
-        'safari'                      => 'SF',
-        'k-meleon'                    => 'KM',
-        'mozilla'                     => 'MZ',
-        'opera'                       => 'OP',
-        'konqueror'                   => 'KQ',
-        'icab'                        => 'IC',
-        'lynx'                        => 'LX',
-		'links'                       => 'LI',					
-        'ncsa mosaic'                 => 'MO',
-        'amaya'                       => 'AM',
-        'omniweb'                     => 'OW',
-		'hotjava'					  => 'HJ',
-        'browsex'                     => 'BX',
-        'amigavoyager'                => 'AV',
-        'amiga-aweb'                  => 'AW',
-        'ibrowse'                     => 'IB'
-		);
-
-    var $_javascript_versions = array(
-        '1.5'   =>  'NS5+,MZ,PX,FB,GA,CH,CA,SF,KQ3+,KM', // browsers that support JavaScript 1.5
-        '1.4'   =>  '',
-        '1.3'   =>  'NS4.05+,OP5+,IE5+',
-        '1.2'   =>  'NS4+,IE4+',
-        '1.1'   =>  'NS3+,OP,KQ',
-        '1.0'   =>  'NS2+,IE3+',
-		'0'     =>	'LI,LX,HJ'	
-        );
-		
-	var $_browser_features = array(
-		/**
-		 *	the following are true by default
-		 *	(see phpSniff.core.php $_feature_set array)
-		 *	browsers listed here will be set to false
-		 **/
-		'html'		=>	'',
-		'images'	=>	'LI,LX',
-		'frames' 	=>	'LI,LX',
-		'tables'	=>	'',
-		'java'		=>	'OP3,LI,LX,NS1,MO,IE1,IE2',
-		'plugins'	=>	'IE1,IE2,LI,LX',
-		/**  
-		 *	the following are false by default
-		 *	(see phpSniff.core.php $_feature_set array)
-		 *	browsers listed here will be set to true
-		 **/
-		'css2'		=>	'NS5+,IE5+,MZ,PX,FB,CH,CA,SF,GA,KQ3+,OP7+,KM',
-		'css1'		=>	'NS4+,IE4+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
-		'iframes'	=>	'IE3+,NS5+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
-		'xml'		=>	'IE5+,NS5+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
-		'dom'		=>	'IE5+,NS5+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
-		'hdml'		=>	'',
-		'wml'		=>	'',
-		'xmlhttpreq'=>  'IE5+,NS5+,MZ,SF'
-		);
-		
-	var $_browser_quirks = array(
-		'must_cache_forms'			=>	'NS,MZ,FB,PX',
-		'avoid_popup_windows'		=>	'IE3,LI,LX',
-		'cache_ssl_downloads'		=>	'IE',
-		'break_disposition_header'	=>	'IE5.5',
-		'empty_file_input_value'	=>	'KQ',
-		'scrollbar_in_way'			=>	'IE6'
-		);
-
-    function phpSniff($UA='',$settings = true)
-    {   //  populate the HTTP_USER_AGENT string
-        //  20020425 :: rraymond
-        //      routine for easier configuration of the client at runtime
-        if(is_array($settings)) {
-            $run = true;
-            extract($settings);
-            $this->_check_cookies = $check_cookies;
-            $this->_default_language = $default_language;
-            $this->_allow_masquerading = $allow_masquerading;
-        } else {
-            // for backwards compatibility with 2.0.x series
-            $run = $settings;
-        }
-        
-        // 20020425 :: besfred
-        if(empty($UA)) $UA = getenv('HTTP_USER_AGENT');
-        if(empty($UA)) {
-            $pv = explode(".", PHP_VERSION);
-            $UA = ( $pv[0] > 3 && $pv[1] > 0 ) ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
-        }
-        // 20020910 :: rraymond
-        if(empty($UA)) return false;
-        
-        $this->_set_browser('ua',$UA);
-        if($run) $this->init();
-    }
-}
+<?php
+/*******************************************************************************
+	$Id: phpSniff.class.php,v 1.21 2003/07/02 23:28:35 epsilon7 Exp $
+    
+    phpSniff: HTTP_USER_AGENT Client Sniffer for PHP
+	Copyright (C) 2001 Roger Raymond ~ epsilon7 at users.sourceforge.net
+
+	This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*******************************************************************************/
+require_once( PLOG_CLASS_PATH.'class/net/http/phpsniff/phpSniff.core.php');
+
+//===============================================================
+//  the following defines are used to create the short
+//  browser name used throughout the script.
+//  change these to suit your needs
+//===============================================================
+
+class phpSniff extends phpSniff_core
+{   var $_version = '2.1.3';
+	/**
+     *  Configuration
+     *
+     *  $_temp_file_path
+     *      default : /tmp/
+     *      desc    : directory writable by the server to store cookie check files.
+     *              : trailing slash is needed. only used if you use the check cookie routine
+     *
+     *  $_check_cookies
+     *      default : null
+     *      desc    : Allow for the script to redirect the browser in order
+     *              : to check for cookies.   In order for this to work, this
+     *              : class must be instantiated before any headers are sent.
+     *
+     *  $_default_language
+     *      default : en-us
+     *      desc    : language to report as if no languages are found
+     *
+     *  $_allow_masquerading
+     *      default : null
+     *      desc    : Allow for browser to Masquerade as another.
+     *              : (ie: Opera identifies as MSIE 5.0)
+     *
+     *  $_browsers
+     *      desc    : 2D Array of browsers we wish to search for
+     *              : in key => value pairs.
+     *              : key   = browser to search for [as in HTTP_USER_AGENT]
+     *              : value = value to return as 'browser' property
+     *
+     *  $_javascript_versions
+     *      desc    : 2D Array of javascript version supported by which browser
+     *              : in key => value pairs.
+     *              : key   = javascript version
+     *              : value = search parameter for browsers that support the
+     *              :         javascript version listed in the key (comma delimited)
+     *              :         note: the search parameters rely on the values
+     *              :               set in the $_browsers array
+     *
+	 *  $_browser_features
+     *      desc    : 2D Array of browser features supported by which browser
+     *              : in key => value pairs.
+     *              : key   = feature
+     *              : value = search parameter for browsers that support the
+     *              :         feature listed in the key (comma delimited)
+     *              :         note: the search parameters rely on the values
+     *              :               set in the $_browsers array
+	 *
+	 *  $_browser_quirks
+     *      desc    : 2D Array of browser quirks present in which browser
+     *              : in key => value pairs.
+     *              : key   = quirk
+     *              : value = search parameter for browsers that feature the
+     *              :         quirk listed in the key (comma delimited)
+     *              :         note: the search parameters rely on the values
+     *              :               set in the $_browsers array
+	 **/
+
+    var $_temp_file_path        = '/tmp/'; // with trailing slash
+    var $_check_cookies         = NULL;
+    var $_default_language      = 'en-us';
+    var $_allow_masquerading    = NULL;
+    var $_php_version           = '';
+    
+    var $_browsers = array(
+        'microsoft internet explorer' => 'IE',
+        'msie'                        => 'IE',
+        'netscape6'                   => 'NS',
+        'netscape'                    => 'NS',
+        'galeon'                      => 'GA',
+        'phoenix'                     => 'PX',
+        'mozilla firebird'            => 'FB',
+        'firebird'                    => 'FB',
+        'chimera'                     => 'CH',
+        'camino'                      => 'CA',
+        'safari'                      => 'SF',
+        'k-meleon'                    => 'KM',
+        'mozilla'                     => 'MZ',
+        'opera'                       => 'OP',
+        'konqueror'                   => 'KQ',
+        'icab'                        => 'IC',
+        'lynx'                        => 'LX',
+		'links'                       => 'LI',					
+        'ncsa mosaic'                 => 'MO',
+        'amaya'                       => 'AM',
+        'omniweb'                     => 'OW',
+		'hotjava'					  => 'HJ',
+        'browsex'                     => 'BX',
+        'amigavoyager'                => 'AV',
+        'amiga-aweb'                  => 'AW',
+        'ibrowse'                     => 'IB'
+		);
+
+    var $_javascript_versions = array(
+        '1.5'   =>  'NS5+,MZ,PX,FB,GA,CH,CA,SF,KQ3+,KM', // browsers that support JavaScript 1.5
+        '1.4'   =>  '',
+        '1.3'   =>  'NS4.05+,OP5+,IE5+',
+        '1.2'   =>  'NS4+,IE4+',
+        '1.1'   =>  'NS3+,OP,KQ',
+        '1.0'   =>  'NS2+,IE3+',
+		'0'     =>	'LI,LX,HJ'	
+        );
+		
+	var $_browser_features = array(
+		/**
+		 *	the following are true by default
+		 *	(see phpSniff.core.php $_feature_set array)
+		 *	browsers listed here will be set to false
+		 **/
+		'html'		=>	'',
+		'images'	=>	'LI,LX',
+		'frames' 	=>	'LI,LX',
+		'tables'	=>	'',
+		'java'		=>	'OP3,LI,LX,NS1,MO,IE1,IE2',
+		'plugins'	=>	'IE1,IE2,LI,LX',
+		/**  
+		 *	the following are false by default
+		 *	(see phpSniff.core.php $_feature_set array)
+		 *	browsers listed here will be set to true
+		 **/
+		'css2'		=>	'NS5+,IE5+,MZ,PX,FB,CH,CA,SF,GA,KQ3+,OP7+,KM',
+		'css1'		=>	'NS4+,IE4+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
+		'iframes'	=>	'IE3+,NS5+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
+		'xml'		=>	'IE5+,NS5+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
+		'dom'		=>	'IE5+,NS5+,MZ,PX,FB,CH,CA,SF,GA,KQ,OP7+,KM',
+		'hdml'		=>	'',
+		'wml'		=>	'',
+		'xmlhttpreq'=>  'IE5+,NS5+,MZ,SF'
+		);
+		
+	var $_browser_quirks = array(
+		'must_cache_forms'			=>	'NS,MZ,FB,PX',
+		'avoid_popup_windows'		=>	'IE3,LI,LX',
+		'cache_ssl_downloads'		=>	'IE',
+		'break_disposition_header'	=>	'IE5.5',
+		'empty_file_input_value'	=>	'KQ',
+		'scrollbar_in_way'			=>	'IE6'
+		);
+
+    function phpSniff($UA='',$settings = true)
+    {   //  populate the HTTP_USER_AGENT string
+        //  20020425 :: rraymond
+        //      routine for easier configuration of the client at runtime
+        if(is_array($settings)) {
+            $run = true;
+            extract($settings);
+            $this->_check_cookies = $check_cookies;
+            $this->_default_language = $default_language;
+            $this->_allow_masquerading = $allow_masquerading;
+        } else {
+            // for backwards compatibility with 2.0.x series
+            $run = $settings;
+        }
+        
+        // 20020425 :: besfred
+        if(empty($UA)) $UA = getenv('HTTP_USER_AGENT');
+        if(empty($UA)) {
+            $pv = explode(".", PHP_VERSION);
+            $UA = ( $pv[0] > 3 && $pv[1] > 0 ) ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
+        }
+        // 20020910 :: rraymond
+        if(empty($UA)) return false;
+        
+        $this->_set_browser('ua',$UA);
+        if($run) $this->init();
+    }
+}
 ?>
\ No newline at end of file




More information about the pLog-svn mailing list