cvs: pear /Net_UserAgent Detect.php /Net_UserAgent/tests example.php
| From: | Jason Rust | Date: | Mon, 18 Apr 2005 18:02:15 +0000 |
| Subject: | cvs: pear /Net_UserAgent Detect.php /Net_UserAgent/tests example.php | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-31287@lists.php.net to get a copy of this message | ||
jrust Mon Apr 18 14:02:15 2005 EDT
Modified files:
/pear/Net_UserAgent Detect.php
/pear/Net_UserAgent/tests example.php
Log:
* Adding the ability to override the static data by setting the 're-evaluate' option so
multiple browsers can be detected in a single page (#2025). NOTE that setting this indiscriminately
will slow down the package's speed.
http://cvs.php.net/diff.php/pear/Net_UserAgent/Detect.php?r1=1.16&r2=1.17&ty=u
Index: pear/Net_UserAgent/Detect.php
diff -u pear/Net_UserAgent/Detect.php:1.16 pear/Net_UserAgent/Detect.php:1.17
--- pear/Net_UserAgent/Detect.php:1.16 Mon Apr 18 13:16:20 2005
+++ pear/Net_UserAgent/Detect.php Mon Apr 18 14:02:13 2005
@@ -18,7 +18,7 @@
// | Jason Rust <jrust@php.net> |
// +----------------------------------------------------------------------+
-// $Id: Detect.php,v 1.16 2005/04/18 17:16:20 jrust Exp $
+// $Id: Detect.php,v 1.17 2005/04/18 18:02:13 jrust Exp $
// }}}
// {{{ constants
@@ -105,14 +105,14 @@
function detect($in_userAgent = null, $in_detect = null)
{
static $hasRun;
- if (!empty($hasRun)) {
+ $options = &Net_UserAgent_Detect::_getStaticProperty('options');
+ if (!empty($hasRun) && empty($options['re-evaluate'])) {
return;
}
$hasRun = true;
// {{{ set up static properties
- $options = &Net_UserAgent_Detect::_getStaticProperty('options');
$in_userAgent = isset($options['userAgent']) && is_null($in_userAgent) ?
$options['userAgent'] : null;
$in_detect = isset($options['detectOptions']) && is_null($in_detect) ?
$options['detectOptions'] : null;
http://cvs.php.net/diff.php/pear/Net_UserAgent/tests/example.php?r1=1.6&r2=1.7&ty=u
Index: pear/Net_UserAgent/tests/example.php
diff -u pear/Net_UserAgent/tests/example.php:1.6 pear/Net_UserAgent/tests/example.php:1.7
--- pear/Net_UserAgent/tests/example.php:1.6 Mon Apr 18 13:01:25 2005
+++ pear/Net_UserAgent/tests/example.php Mon Apr 18 14:02:15 2005
@@ -23,18 +23,31 @@
// }}}
if (in_array(php_sapi_name(), array('cli', 'cgi')) &&
empty($_SERVER['REMOTE_ADDR'])) {
- $_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'fr;';
- Net_UserAgent_Detect::setOption('userAgent', 'Mozilla/5.0 (X11; U; Linux i686;
en-US; rv:1.0rc1) Gecko/20020417');
+ Net_UserAgent_Detect::setOption('re-evaluate', true);
+ foreach (array('en' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0rc1)
Gecko/20020417',
+ 'fr' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;
SV1; .NET CLR 1.1.4322)') as $lang => $brwsr) {
+ putenv("HTTP_ACCEPT_LANGUAGE=$lang");
+ Net_UserAgent_Detect::setOption('userAgent', $brwsr);
+ print_info();
+ println('----------------------------');
+ }
}
+else {
+ print_info();
+}
+
-$browserSearch = array('ie6up', 'ie5', 'ie4', 'gecko',
'ns6up', 'ns4', 'nav', 'safari');
-println('User Agent String: ' . Net_UserAgent_Detect::getUserAgent());
-println('Browser String: ' . Net_UserAgent_Detect::getBrowserString());
-println('OS String: ' . Net_UserAgent_Detect::getOSString());
-println('Browser flag: ' . Net_UserAgent_Detect::getBrowser($browserSearch));
-println('Has "popups disabled" quirk: ' .
(Net_UserAgent_Detect::hasQuirk('popups_disabled') ? 'Yes' : 'No'));
-println('Has "dom" feature: ' .
(Net_UserAgent_Detect::hasFeature('dom') ? 'Yes' : 'No'));
-println('Javascript version: ' .
Net_UserAgent_Detect::getFeature('javascript'));
-$languages = array('fr', 'de', 'en');
-println('Accept Language: ' . Net_UserAgent_Detect::getAcceptType($languages,
'language'));
+function print_info()
+{
+ $browserSearch = array('ie6up', 'ie5', 'ie4', 'gecko',
'ns6up', 'ns4', 'nav', 'safari');
+ println('User Agent String: ' . Net_UserAgent_Detect::getUserAgent());
+ println('Browser String: ' . Net_UserAgent_Detect::getBrowserString());
+ println('OS String: ' . Net_UserAgent_Detect::getOSString());
+ println('Browser flag: ' . Net_UserAgent_Detect::getBrowser($browserSearch));
+ println('Has "popups disabled" quirk: ' .
(Net_UserAgent_Detect::hasQuirk('popups_disabled') ? 'Yes' : 'No'));
+ println('Has "dom" feature: ' .
(Net_UserAgent_Detect::hasFeature('dom') ? 'Yes' : 'No'));
+ println('Javascript version: ' .
Net_UserAgent_Detect::getFeature('javascript'));
+ $languages = array('fr', 'de', 'en');
+ println('Accept Language: ' . Net_UserAgent_Detect::getAcceptType($languages,
'language'));
+}
?>