Example #1
0
 /**
  * @param string $userAgent
  *
  * @return null|string
  */
 public function applyConclusiveMatch($userAgent)
 {
     $matches = array();
     if (preg_match('#^Mozilla/5\\.0 \\(Windows NT.+? Edge/(\\d+)\\.(\\d+)#', $userAgent, $matches) || preg_match('#^Mozilla/5\\.0 \\(.+?Trident.+?; rv:(\\d\\d)\\.(\\d+)\\)#', $userAgent, $matches) || preg_match('#^Mozilla/[45]\\.0 \\(compatible; MSIE (\\d+)\\.(\\d+);#', $userAgent, $matches)) {
         $major = (int) $matches[1];
         $minor = (int) $matches[2];
         // MSIE 5.5 is handled specifically
         if ($major === 5 && $minor === 5) {
             return 'msie_5_5';
         }
         // Look for version in constant ID array
         if (array_key_exists($major, self::$constantIDs)) {
             return self::$constantIDs[$major];
         }
     }
     return $this->getDeviceIDFromRIS($userAgent, Utils::indexOfOrLength($userAgent, 'Trident'));
 }
Example #2
0
 public function applyConclusiveMatch($userAgent)
 {
     if (Utils::checkIfContains($userAgent, 'BB10')) {
         $tolerance = Utils::indexOfOrLength($userAgent, ')');
     } else {
         if (Utils::checkIfStartsWith($userAgent, 'Mozilla/4')) {
             $tolerance = Utils::secondSlash($userAgent);
         } else {
             if (Utils::checkIfStartsWith($userAgent, 'Mozilla/5')) {
                 $tolerance = Utils::ordinalIndexOf($userAgent, ';', 3);
             } elseif (Utils::checkIfStartsWith($userAgent, 'PlayBook')) {
                 $tolerance = Utils::firstCloseParen($userAgent);
             } else {
                 $tolerance = Utils::firstSlash($userAgent);
             }
         }
     }
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
 /**
  * @param string $userAgent
  *
  * @return null|string
  */
 public function applyConclusiveMatch($userAgent)
 {
     if (Utils::checkIfContains($userAgent, ' Build/')) {
         return $this->getDeviceIDFromRIS($userAgent, Utils::indexOfOrLength($userAgent, ' Build/'));
     }
     $prefixes = array('Opera/9.80 (J2ME/MIDP; Opera Mini/5' => 'uabait_opera_mini_android_v50', 'Opera/9.80 (Android; Opera Mini/5.0' => 'uabait_opera_mini_android_v50', 'Opera/9.80 (Android; Opera Mini/5.1' => 'uabait_opera_mini_android_v51');
     foreach ($prefixes as $prefix => $defaultID) {
         if (Utils::checkIfStartsWith($userAgent, $prefix)) {
             // If RIS returns a non-generic match, return it, else, return the default
             $tolerance = strlen($prefix);
             $deviceID = $this->getDeviceIDFromRIS($userAgent, $tolerance);
             if ($deviceID === WurflConstants::NO_MATCH) {
                 return $defaultID;
             }
             return $deviceID;
         }
     }
     return WurflConstants::NO_MATCH;
 }