Exemplo n.º 1
0
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Philips") || WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "PHILIPS");
 }
Exemplo n.º 2
0
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Qtek');
 }
Exemplo n.º 3
0
 function applyRecoveryMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "DoCoMo/2")) {
         return "docomo_generic_jap_ver2";
     }
     return "docomo_generic_jap_ver1";
 }
	/**
	 * 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 );
	}
Exemplo n.º 5
0
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla') && WURFL_Handlers_Utils::checkIfContains($userAgent, 'UCBrowser');
 }
Exemplo n.º 6
0
 /**
  * Intercept all UAs Starting with Mozilla and Containing MSIE and are not mobile browsers
  *
  * @param string $userAgent
  * @return boolean
  */
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isMobileBrowser($userAgent)) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Mozilla") && WURFL_Handlers_Utils::checkIfContains($userAgent, "MSIE");
 }
 public function applyRecoveryMatch($userAgent)
 {
     $version = self::getWindowsPhoneVersion($userAgent);
     if ($version == "8.1") {
         return 'generic_ms_phone_os8_1';
     }
     if ($version == "8.0") {
         return 'generic_ms_phone_os8';
     }
     if ($version == "7.8") {
         return 'generic_ms_phone_os7_8';
     }
     if ($version == "7.5") {
         return 'generic_ms_phone_os7_5';
     }
     if ($version == "7.0") {
         return 'generic_ms_phone_os7';
     }
     if ($version == "6.5") {
         return 'generic_ms_winmo6_5';
     }
     //These are probably UAs of the type "Windows Phone Ad Client (Xna)/5.1.0.0 BMID/E67970D969"
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Windows Phone Ad Client') || WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'WindowsPhoneAdClient')) {
         return 'generic_ms_phone_os7';
     }
     return WURFL_Constants::NO_MATCH;
 }
Exemplo n.º 8
0
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Alcatel") || WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "ALCATEL");
 }
Exemplo n.º 9
0
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla/5') && WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('iPhone', 'iPod', 'iPad'));
 }
Exemplo n.º 10
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.º 11
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);
 }
Exemplo n.º 12
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.º 13
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);
 }
Exemplo n.º 14
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);
 }
	/**
	 * 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.º 16
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);
 }
Exemplo n.º 17
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, ")");
 }
Exemplo n.º 18
0
 /** 
  *
  * @param string $userAgent
  * @return string
  */
 function lookForMatchingUserAgent($userAgent)
 {
     $tolerance = 0;
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "Apple")) {
         $tolerance = WURFL_Handlers_Utils::ordinalIndexOf($userAgent, " ", 3);
     } else {
         $tolerance = WURFL_Handlers_Utils::firstSemiColonOrLength($userAgent);
     }
     return WURFL_Handlers_Utils::risMatch(array_keys($this->userAgentsWithDeviceID), $userAgent, $tolerance);
 }
Exemplo n.º 19
0
 public function canHandle($userAgent)
 {
     if (WURFL_Handlers_Utils::isMobileBrowser($userAgent)) {
         return false;
     }
     if (WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('Opera', 'armv', 'MOTO', 'BREW'))) {
         return false;
     }
     return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla') && WURFL_Handlers_Utils::checkIfContains($userAgent, 'MSIE');
 }
Exemplo n.º 20
0
 public function applyRecoveryMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'SAMSUNG')) {
         $tolerance = 8;
         return $this->getDeviceIDFromLD($userAgent, $tolerance);
     } else {
         $tolerance = WURFL_Handlers_Utils::indexOfOrLength($userAgent, '/', strpos($userAgent, 'Samsung'));
         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 );
	}
Exemplo n.º 22
0
 public function normalize($userAgent)
 {
     // Repair Opera user agents using fake version 9.80
     // Normalize: Opera/9.80 (X11; Linux x86_64; U; sv) Presto/2.9.168 Version/11.50
     // Into:	  Opera/11.50 (X11; Linux x86_64; U; sv) Presto/2.9.168 Version/11.50
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Opera/9.80')) {
         if (preg_match('#Version/(\\d+\\.\\d+)#', $userAgent, $matches)) {
             $userAgent = str_replace('Opera/9.80', 'Opera/' . $matches[1], $userAgent);
         }
     }
     return $userAgent;
 }
 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);
 }
Exemplo n.º 24
0
 public function applyRecoveryMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Nintendo Wii')) {
         return 'nintendo_wii_ver1';
     }
     if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Nintendo DSi')) {
         return 'nintendo_dsi_ver1';
     }
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla/') && WURFL_Handlers_Utils::checkIfContainsAll($userAgent, array('Nitro', 'Opera'))) {
         return 'nintendo_ds_ver1';
     }
     return 'nintendo_wii_ver1';
 }
Exemplo n.º 25
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.º 26
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.º 27
0
 /**
  * Apply Recovery Match
  *
  * @param string $userAgent
  * @return string
  */
 function applyRecoveryMatch($userAgent)
 {
     $version = $this->blackberryVersion($userAgent);
     if (is_null($version)) {
         return WURFL_Constants::GENERIC;
     }
     foreach ($this->blackberryIds as $v => $deviceId) {
         if (WURFL_Handlers_Utils::checkIfStartsWith($version, $v)) {
             return $deviceId;
         }
     }
     return WURFL_Constants::GENERIC;
 }
Exemplo n.º 28
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.º 29
0
 public function normalize($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Windows Phone Ad Client')) {
         $model = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneAdClientModel($userAgent);
         $version = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneAdClientVersion($userAgent);
     } else {
         if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'NativeHost')) {
             return $userAgent;
         } else {
             $model = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneModel($userAgent);
             $version = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneVersion($userAgent);
         }
     }
     if ($model !== null && $version !== null) {
         $prefix = 'WP' . $version . ' ' . $model . WURFL_Constants::RIS_DELIMITER;
         return $prefix . $userAgent;
     }
     return $userAgent;
 }
Exemplo n.º 30
0
 public function applyConclusiveMatch($userAgent)
 {
     if (WURFL_Handlers_Utils::checkIfContains($userAgent, ' Build/')) {
         return $this->getDeviceIDFromRIS($userAgent, WURFL_Handlers_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 (WURFL_Handlers_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 == WURFL_Constants::NO_MATCH) {
                 return $defaultID;
             }
             return $deviceID;
         }
     }
     return WURFL_Constants::NO_MATCH;
 }