Ejemplo n.º 1
0
 public function applyConclusiveMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array('Mot-', 'MOT-', 'Motorola'))) {
         return $this->getDeviceIDFromRIS($userAgent, WURFL_Handlers_Utils::firstSlash($userAgent));
     }
     return $this->getDeviceIDFromLD($userAgent, 5);
 }
Ejemplo n.º 2
0
 /**
  * Apply Recovery Match
  *
  * @param string $userAgent
  * @return string
  */
 function applyRecoveryMatch($userAgent)
 {
     if (strpos($userAgent, "BlackBerry") === 0) {
         $position = WURFL_Handlers_Utils::firstSlash($userAgent);
         if ($position > 0 && $position + 4 <= strlen($userAgent)) {
             $version = substr($userAgent, $position + 1, $position + 4);
             if (strpos($version, "2.") === 0) {
                 return "blackberry_generic_ver2";
             }
             if (strpos($version, "3.2") === 0) {
                 return "blackberry_generic_ver3_sub2";
             }
             if (strpos($version, "3.3") === 0) {
                 return "blackberry_generic_ver3_sub30";
             }
             if (strpos($version, "3.5") === 0) {
                 return "blackberry_generic_ver3_sub50";
             }
             if (strpos($version, "3.6") === 0) {
                 return "blackberry_generic_ver3_sub60";
             }
             if (strpos($version, "3.7") === 0) {
                 return "blackberry_generic_ver3_sub70";
             }
             if (strpos($version, "4.") === 0) {
                 return "blackberry_generic_ver4";
             }
         }
     }
 }
Ejemplo n.º 3
0
 public function applyConclusiveMatch($userAgent)
 {
     $matches = array();
     if (preg_match('/^Mozilla\\/4\\.0 \\(compatible; MSIE (\\d)\\.(\\d);/', $userAgent, $matches)) {
         if (WURFL_Configuration_ConfigHolder::getWURFLConfig()->isHighPerformance()) {
             return WURFL_Constants::GENERIC_WEB_BROWSER;
         }
         switch ($matches[1]) {
             // cases are intentionally out of sequence for performance
             case 7:
                 return 'msie_7';
                 break;
             case 8:
                 return 'msie_8';
                 break;
             case 9:
                 return 'msie_9';
                 break;
             case 6:
                 return 'msie_6';
                 break;
             case 4:
                 return 'msie_4';
                 break;
             case 5:
                 return $matches[2] == 5 ? 'msie_5_5' : 'msie_5';
                 break;
             default:
                 return 'msie';
                 break;
         }
     }
     $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
	/**
	 * If UA starts with "NEC", apply RIS of FS
	 * If UA starts with KGT, apply LD with threshold 2
	 *
	 * @param string $userAgent
	 * @return boolean
	 */
	function lookForMatchingUserAgent($userAgent) {
		if (WURFL_Handlers_Utils::checkIfStartsWith ( $userAgent, "NEC-" )) {
			$tollerance = WURFL_Handlers_Utils::firstSlash ( $userAgent );
			return WURFL_Handlers_Utils::risMatch ( array_keys ( $this->userAgentsWithDeviceID ), $userAgent, $tollerance );
		}
		return WURFL_Handlers_Utils::ldMatch ( array_keys ( $this->userAgentsWithDeviceID ), $userAgent, self::NEC_KGT_TOLLERANCE );
	}
Ejemplo n.º 5
0
 public function applyConclusiveMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "NEC-")) {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
         return $this->getDeviceIDFromRIS($userAgent, $tolerance);
     }
     return $this->getDeviceIDFromLD($userAgent, self::NEC_KGT_TOLERANCE);
 }
Ejemplo n.º 6
0
 public function applyConclusiveMatch($userAgent)
 {
     $tolerance = WURFL_Handlers_Utils::toleranceToRisDelimeter($userAgent);
     if ($tolerance !== false) {
         return $this->getDeviceIDFromRIS($userAgent, $tolerance);
     }
     $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
Ejemplo n.º 7
0
 public function applyConclusiveMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'SonyEricsson')) {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent) - 1;
         return $this->getDeviceIDFromRIS($userAgent, $tolerance);
     }
     $tolerance = WURFL_Handlers_Utils::secondSlash($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 );
	
	}
Ejemplo n.º 9
0
 /**
  * Apply RIS on Firts slash
  *
  * @param string $userAgent
  * @return string
  */
 public function applyConclusiveMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "CFNetwork/")) {
         $tolerance = WURFL_Handlers_Utils::firstSpace($userAgent);
     } else {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     }
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
Ejemplo n.º 10
0
 public function applyConclusiveMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Pantech")) {
         $tolerance = self::PANTECH_TOLERANCE;
     } else {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     }
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
Ejemplo n.º 11
0
 public function applyConclusiveMatch($userAgent)
 {
     $idx = strpos($userAgent, 'MobilePhone');
     if ($idx !== false) {
         $tolerance = WURFL_Handlers_Utils::indexOfOrLength($userAgent, '/', $idx);
     } else {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     }
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
Ejemplo n.º 12
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, ")");
 }
Ejemplo n.º 13
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);
 }
	/**
	 * 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 );
	}
Ejemplo n.º 15
0
 /**
  * If UA starts with Mozilla, apply LD with tollerance 5.
  * If UA does not start with Mozilla, apply RIS on FS
  *
  * @param string $userAgent
  * @return string
  */
 public function applyConclusiveMatch($userAgent)
 {
     $deviceId = WURFL_Constants::GENERIC;
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla')) {
         $deviceId = $this->applyMozillaConclusiveMatch($userAgent);
     } else {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
         $deviceId = $this->getDeviceIDFromRIS($userAgent, $tolerance);
     }
     return $deviceId;
 }
	/**
	 *
	 * @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::checkIfContains($userAgent, "GoogleImageProxy")) {
         return 'google_image_proxy';
     }
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Mozilla")) {
         $tolerance = WURFL_Handlers_Utils::firstCloseParen($userAgent);
     } else {
         $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     }
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
 /**
  * If UA starts with Mozilla, apply LD with tollerance 5.
  * If UA does not start with Mozilla, apply RIS on FS
  *
  * @param string $userAgent
  * @return string
  */
 function applyConclusiveMatch($userAgent)
 {
     $deviceId = WURFL_Constants::GENERIC;
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Mozilla")) {
         $deviceId = $this->applyMozillaConclusiveMatch($userAgent);
     } else {
         $tollerance = WURFL_Handlers_Utils::firstSlash($userAgent);
         $match = WURFL_Handlers_Utils::risMatch(array_keys($this->userAgentsWithDeviceID), $userAgent, $tollerance);
         $deviceId = $this->userAgentsWithDeviceID[$match];
     }
     return $deviceId;
 }
Ejemplo n.º 19
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);
 }
Ejemplo n.º 20
0
 public function applyConclusiveMatch($userAgent)
 {
     $opera_mini_idx = strpos($userAgent, 'Opera Mini');
     if ($opera_mini_idx !== false) {
         // Match up to the first '.' after 'Opera Mini'
         $tolerance = strpos($userAgent, '.', $opera_mini_idx);
         if ($tolerance !== false) {
             // +1 to match just after the '.'
             return $this->getDeviceIDFromRIS($userAgent, $tolerance + 1);
         }
     }
     return $this->getDeviceIDFromRIS($userAgent, WURFL_Handlers_Utils::firstSlash($userAgent));
 }
Ejemplo n.º 21
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);
 }
Ejemplo n.º 22
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);
 }
Ejemplo n.º 23
0
 public function applyConclusiveMatch($userAgent)
 {
     $model = self::getOperaModel($userAgent, false);
     if ($model !== null) {
         $prefix = $model . WURFL_Constants::RIS_DELIMITER;
         $userAgent = $prefix . $userAgent;
         return $this->getDeviceIDFromRIS($userAgent, strlen($prefix));
     }
     $opera_mini_idx = WURFL_Handlers_Utils::indexOfOrLength($userAgent, 'Opera Mini');
     if ($opera_mini_idx !== false) {
         // Match up to the first '.' after 'Opera Mini'
         $tolerance = strpos($userAgent, '.', $opera_mini_idx);
         if ($tolerance !== false) {
             // +1 to match just after the '.'
             return $this->getDeviceIDFromRIS($userAgent, $tolerance + 1);
         }
     }
     $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
Ejemplo n.º 24
0
 public function applyConclusiveMatch($userAgent)
 {
     $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     return $this->getDeviceIDFromRIS($userAgent, $tolerance);
 }
Ejemplo n.º 25
0
 /**
  * Find a matching WURFL device from the given $userAgent. Override this method to give an alternative way to do the matching
  *
  * @param string $userAgent
  * @return string
  */
 public function lookForMatchingUserAgent($userAgent)
 {
     $tolerance = WURFL_Handlers_Utils::firstSlash($userAgent);
     return WURFL_Handlers_Utils::risMatch(array_keys($this->userAgentsWithDeviceID), $userAgent, $tolerance);
 }
Ejemplo n.º 26
0
 public function testFirstSlash()
 {
     $this->assertEquals(6, WURFL_Handlers_Utils::firstSlash('Value/12'));
     $this->assertNull(WURFL_Handlers_Utils::firstSlash('Value'));
 }