note 57779 added to function.get-browser

From: Date: Thu, 13 Oct 2005 22:36:04 +0000
Subject: note 57779 added to function.get-browser
Groups: php.notes 
Request: Send a blank email to php-notes+get-96985@lists.php.net to get a copy of this message
This is a fix for a bug in the code left by steve (in Feb). Basically, if the search for the browser type was at the beginning of the 'HTTP_USER_AGENT' (ie. the first character) then strpos returns 0 causing, the code to drop out incorrectly. I also trimmed the code to make it more efficient. function _get_browser() { $browser = array ( "MSIE", // parent "OPERA", "MOZILLA", // parent "NETSCAPE", "FIREFOX", "SAFARI" ); $info[browser] = "OTHER"; foreach ($browser as $parent) { if ( ($s = strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent)) !== FALSE ) { $f = $s + strlen($parent); $version = substr($_SERVER['HTTP_USER_AGENT'], $f, 5); $version = preg_replace('/[^0-9,.]/','',$version); $info[browser] = $parent; $info[version] = $version; } } return $info; } ---- Manual Page -- http://www.php.net/manual/en/function.get-browser.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+57779 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+57779&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+57779&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#96985) next »