Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /**
  * 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);
 }
Exemplo n.º 3
0
 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 );
	
	}
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
 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 );
	}
Exemplo n.º 8
0
 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 );
	}
Exemplo n.º 10
0
 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);
 }
Exemplo n.º 11
0
 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);
 }
Exemplo n.º 12
0
 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);
 }
Exemplo n.º 13
0
 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'));
 }