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"); }
public function canHandle($userAgent) { if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Qtek'); }
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 ); }
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'); }
/** * 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; }
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"); }
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')); }
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); }
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); }
/** * 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); }
/** * 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); }
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 ); }
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); }
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, ")"); }
/** * * @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); }
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'); }
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 ); }
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); }
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'; }
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); }
/** * 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; }
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 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; }
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; }