public function applyConclusiveMatch($userAgent) { // Look for RIS delimited UAs first $delimiter_idx = strpos($userAgent, WURFL_Constants::RIS_DELIMITER); if ($delimiter_idx !== false) { $tolerance = $delimiter_idx + strlen(WURFL_Constants::RIS_DELIMITER); return $this->getDeviceIDFromRIS($userAgent, $tolerance); } // Opera Mini if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Opera Mini')) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, ' Build/')) { $tolerance = WURFL_Handlers_Utils::indexOfOrLength($userAgent, ' Build/'); return $this->getDeviceIDFromRIS($userAgent, $tolerance); } $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 (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, $prefix)) { return $this->getDeviceIDFromRIS($userAgent, strlen($prefix)); } } } // Opera Mobi if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Opera Mobi')) { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); return $this->getDeviceIDFromRIS($userAgent, $tolerance); } // Opera Tablet if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Opera Tablet')) { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); return $this->getDeviceIDFromRIS($userAgent, $tolerance); } // Fennec if (WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('Fennec', 'Firefox'))) { $tolerance = WURFL_Handlers_Utils::indexOfOrLength($userAgent, ')'); return $this->getDeviceIDFromRIS($userAgent, $tolerance); } // UCWEB7 if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'UCWEB7')) { // The tolerance is after UCWEB7, not before $find = 'UCWEB7'; $tolerance = strpos($userAgent, $find) + strlen($find); if ($tolerance > strlen($userAgent)) { $tolerance = strlen($userAgent); } return $this->getDeviceIDFromRIS($userAgent, $tolerance); } // NetFrontLifeBrowser if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'NetFrontLifeBrowser/2.2')) { $find = 'NetFrontLifeBrowser/2.2'; $tolerance = strpos($userAgent, $find) + strlen($find); if ($tolerance > strlen($userAgent)) { $tolerance = strlen($userAgent); } return $this->getDeviceIDFromRIS($userAgent, $tolerance); } // Standard RIS Matching $tolerance = min(WURFL_Handlers_Utils::indexOfOrLength($userAgent, ' Build/'), WURFL_Handlers_Utils::indexOfOrLength($userAgent, ' AppleWebKit')); return $this->getDeviceIDFromRIS($userAgent, $tolerance); }
/** * if UA starts with "KDDI/", apply RIS with Second Slash Otherwise apply RIS * with FS */ function lookForMatchingUserAgent($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "KDDI/")) { $tollerance = WURFL_Handlers_Utils::secondSlash($userAgent); return WURFL_Handlers_Utils::risMatch(array_keys($this->userAgentsWithDeviceID), $userAgent, $tollerance); } return parent::lookForMatchingUserAgent($userAgent); }
public function applyConclusiveMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'KDDI/')) { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); } else { $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent); } return $this->getDeviceIDFromRIS($userAgent, $tolerance); }
/** * If UA starts with "SonyEricsson", apply RIS with FS as a threshold. * If UA contains "SonyEricsson" somewhere in the middle, * apply RIS with threshold second slash * * @param string $userAgent * @return string */ function lookForMatchingUserAgent($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "SonyEricsson" )) { $tollerance = WURFL_Handlers_Utils::firstSlash ( $userAgent ); return WURFL_Handlers_Utils::risMatch ( array_keys ( $this->userAgentsWithDeviceID ), $userAgent, $tollerance ); } $tollerance = WURFL_Handlers_Utils::secondSlash ( $userAgent ); return WURFL_Handlers_Utils::ldMatch ( array_keys ( $this->userAgentsWithDeviceID ), $userAgent, $tollerance ); }
public function applyConclusiveMatch($userAgent) { if (WURFL_Handlers_Utils::numSlashes($userAgent) >= 2) { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); } else { // DoCoMo/2.0 F01A(c100;TB;W24H17) $tolerance = WURFL_Handlers_Utils::firstOpenParen($userAgent); } return $this->getDeviceIDFromRIS($userAgent, $tolerance); }
private function tolerance($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "KDDI/")) { return WURFL_Handlers_Utils::secondSlash($userAgent); } if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "KDDI")) { return WURFL_Handlers_Utils::firstSlash($userAgent); } return WURFL_Handlers_Utils::indexOfOrLength($userAgent, ")"); }
/** * If UA starts with one of the following ("SEC-", "SAMSUNG-", "SCH"), apply RIS with FS. * If UA starts with one of the following ("Samsung-","SPH", "SGH" ), apply RIS with First Space (not FS). * If UA starts with "SAMSUNG/", apply RIS with threshold SS (Second Slash) * * @param string $userAgent * @return string */ function lookForMatchingUserAgent($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "SEC-" ) || WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "SAMSUNG-" ) || WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "SCH" )) { $tollerance = WURFL_Handlers_Utils::firstSlash ( $userAgent ); } else if (WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "Samsung" ) || WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "SPH" ) || WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "SGH" )) { $tollerance = WURFL_Handlers_Utils::firstSpace ( $userAgent ); } else { $tollerance = WURFL_Handlers_Utils::secondSlash ( $userAgent ); } $this->logger->log ( "$this->prefix :Applying Conclusive Match for ua: $userAgent with tollerance $tollerance" ); return WURFL_Handlers_Utils::risMatch ( array_keys ( $this->userAgentsWithDeviceID ), $userAgent, $tollerance ); }
public function applyConclusiveMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array("SEC-", "SAMSUNG-", "SCH"))) { $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent); } elseif (WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array("Samsung", "SPH", "SGH"))) { $tolerance = WURFL_Handlers_Utils::firstSpace($userAgent); } else { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); } return $this->getDeviceIDFromRIS($userAgent, $tolerance); }
/** * * @param string $userAgent * @return string */ function lookForMatchingUserAgent($userAgent) { if ($this->isVodafone ( $userAgent )) { $tolerance = WURFL_Handlers_Utils::ordinalIndexOf($userAgent, "LG", 1); } if (WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "LG/" ) || WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "LGE/" )) { $tolerance = WURFL_Handlers_Utils::secondSlash ( $userAgent ); } else { $tolerance = WURFL_Handlers_Utils::firstSlash ( $userAgent ); } return WURFL_Handlers_Utils::risMatch ( array_keys ( $this->userAgentsWithDeviceID ), $userAgent, $tolerance ); }
public function applyConclusiveMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla/4')) { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); } else { if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla/5')) { $tolerance = WURFL_Handlers_Utils::ordinalIndexOf($userAgent, ';', 3); } else { $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent); } } return $this->getDeviceIDFromRIS($userAgent, $tolerance); }
private function tolerance($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array("SEC-", "SAMSUNG-", "SCH"))) { return WURFL_Handlers_Utils::firstSlash($userAgent); } if (WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array("Samsung-", "SPH", "SGH"))) { return WURFL_Handlers_Utils::firstSpace($userAgent); } if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "SAMSUNG/")) { return WURFL_Handlers_Utils::secondSlash($userAgent); } return WURFL_Handlers_Utils::firstSlash($userAgent); }
public function applyConclusiveMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'BB10')) { $tolerance = WURFL_Handlers_Utils::indexOfOrLength($userAgent, ')'); } elseif (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla/4')) { $tolerance = WURFL_Handlers_Utils::secondSlash($userAgent); } elseif (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla/5')) { $tolerance = WURFL_Handlers_Utils::ordinalIndexOf($userAgent, ';', 3); } elseif (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'PlayBook')) { $tolerance = WURFL_Handlers_Utils::firstCloseParen($userAgent); } else { $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent); } return $this->getDeviceIDFromRIS($userAgent, $tolerance); }
public function testSecondSlash() { $this->assertEquals(9, WURFL_Handlers_Utils::secondSlash('Value/12/13')); $this->assertNull(WURFL_Handlers_Utils::secondSlash('Value/12')); $this->assertNull(WURFL_Handlers_Utils::secondSlash('Value')); }