public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Windows CE;')) { return 'generic_ms_mobile'; } return $this->getDeviceIDFromRIS($userAgent, 6); }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Froyo')) { return 'generic_android_ver2_2'; } $android_version = self::getAndroidVersion($userAgent); $version_string = str_replace('.', '_', $android_version); $deviceID = 'generic_android_ver' . $version_string; if ($deviceID == 'generic_android_ver2_0') { $deviceID = 'generic_android_ver2'; } if ($deviceID == 'generic_android_ver4_0') { $deviceID = 'generic_android_ver4'; } if (($android_version < 3.0 || $android_version >= 4.0) && WURFL_Handlers_Utils::checkIfContains($userAgent, 'Safari') && !WURFL_Handlers_Utils::checkIfContains($userAgent, 'Mobile')) { // This is probably a tablet (Android 3.x is always a tablet, so it doesn't have a "_tablet" ID) if (in_array($deviceID . '_tablet', self::$constantIDs)) { return $deviceID . '_tablet'; } return 'generic_android_ver1_5_tablet'; } if (in_array($deviceID, self::$constantIDs)) { return $deviceID; } return 'generic_android'; }
public function canHandle($userAgent) { if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Qtek'); }
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"); }
/** * If the User Agent contains "MIB/2.2" or "MIB/BER2.2", * return "mot_mib22_generic" * * @param string $userAgent * @return string */ function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, "MIB/2.2") || WURFL_Handlers_Utils::checkIfContains($userAgent, "MIB/BER2.2")) { return "mot_mib22_generic"; } return WURFL_Constants::GENERIC; }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Skyfire/2.')) { return 'generic_skyfire_version2'; } return 'generic_skyfire_version1'; }
public function canHandle($userAgent) { if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('HTC', 'XV6875')); }
/** * 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"; } } } }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Trident/5.0')) { return 'generic_ms_phone_os7_5_desktopmode'; } return 'generic_ms_phone_os7_desktopmode'; }
public function normalize($userAgent) { // Normalize Android version $userAgent = preg_replace('/(Android)[ \\-\\/](\\d\\.\\d)([^; \\/\\)]+)/', '$1 $2', $userAgent); // Opera Mobi/Tablet $is_opera_mobi = WURFL_Handlers_Utils::checkIfContains($userAgent, 'Opera Mobi'); $is_opera_tablet = WURFL_Handlers_Utils::checkIfContains($userAgent, 'Opera Tablet'); if ($is_opera_mobi || $is_opera_tablet) { $opera_version = WURFL_Handlers_AndroidHandler::getOperaOnAndroidVersion($userAgent, false); $android_version = WURFL_Handlers_AndroidHandler::getAndroidVersion($userAgent, false); if ($opera_version !== null && $android_version !== null) { $opera_model = $is_opera_tablet ? 'Opera Tablet' : 'Opera Mobi'; $prefix = $opera_model . ' ' . $opera_version . ' Android ' . $android_version . WURFL_Constants::RIS_DELIMITER; return $prefix . $userAgent; } } // Stock Android if (!WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, $this->skip_normalization)) { $model = WURFL_Handlers_AndroidHandler::getAndroidModel($userAgent, false); $version = WURFL_Handlers_AndroidHandler::getAndroidVersion($userAgent, false); if ($model !== null && $version !== null) { $prefix = $version . ' ' . $model . WURFL_Constants::RIS_DELIMITER; return $prefix . $userAgent; } } return $userAgent; }
public function canHandle($userAgent) { if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfContains($userAgent, 'Android') && WURFL_Handlers_Utils::checkIfContains($userAgent, 'NetFrontLifeBrowser/2.2'); }
/** * * Apply RIS with FS (First Slash) after Nokia String as a threshold. * * * @param string $userAgent * @return string */ function lookForMatchingUserAgent($userAgent) { //$tolerance = WU $tolerance = WURFL_Handlers_Utils::indexOfAnyOrLength($userAgent, array("/", " "), strpos($userAgent, "Nokia")); $userAgents = array_keys($this->userAgentsWithDeviceID); return parent::applyRisWithTollerance($userAgents, $userAgent, $tolerance); }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'MSIE 10.0')) { return 'microsoft_xbox360_ver1_subie10'; } return 'microsoft_xbox360_ver1'; }
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::checkIfStartsWithAnyOf($userAgent, array('kyocera', 'QC-', 'KWC-')); }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('MIB/2.2', 'MIB/BER2.2'))) { return "mot_mib22_generic"; } return null; }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Windows CE;')) { return 'generic_ms_mobile'; } return WURFL_Constants::NO_MATCH; }
public function normalize($userAgent) { if (WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('WPDesktop', 'ZuneWP7')) || WURFL_Handlers_Utils::checkIfContainsAll($userAgent, array('Mozilla/5.0 (Windows NT ', ' ARM;', ' Edge/'))) { $model = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneDesktopModel($userAgent); $version = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneDesktopVersion($userAgent); } else { if (WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array('Windows Phone Ad Client', 'WindowsPhoneAdClient'))) { $model = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneAdClientModel($userAgent); $version = WURFL_Handlers_WindowsPhoneHandler::getWindowsPhoneVersion($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) { // "WP" is for Windows Phone $prefix = 'WP' . $version . ' ' . $model . WURFL_Constants::RIS_DELIMITER; return $prefix . $userAgent; } return $userAgent; }
public function normalize($userAgent) { $ucb_version = WURFL_Handlers_UcwebU3Handler::getUcBrowserVersion($userAgent); if ($ucb_version === null) { return $userAgent; } //Android U3K Mobile + Tablet if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'Android')) { // Apply Version+Model--- matching normalization $model = WURFL_Handlers_AndroidHandler::getAndroidModel($userAgent, false); $version = WURFL_Handlers_AndroidHandler::getAndroidVersion($userAgent, false); if ($model !== null && $version !== null) { $prefix = "{$version} U3Android {$ucb_version} {$model}" . WURFL_Constants::RIS_DELIMITER; return $prefix . $userAgent; } } else { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'iPhone;')) { if (preg_match('/iPhone OS (\\d+)(?:_(\\d+))?(?:_\\d+)* like/', $userAgent, $matches)) { $version = $matches[1] . '.' . $matches[2]; $prefix = "{$version} U3iPhone {$ucb_version}" . WURFL_Constants::RIS_DELIMITER; return $prefix . $userAgent; } } else { if (WURFL_Handlers_Utils::checkIfContains($userAgent, 'iPad')) { if (preg_match('/CPU OS (\\d)_?(\\d)?.+like Mac.+; iPad([0-9,]+)\\) AppleWebKit/', $userAgent, $matches)) { $version = $matches[1] . '.' . $matches[2]; $model = $matches[3]; $prefix = "{$version} U3iPad {$ucb_version} {$model}" . WURFL_Constants::RIS_DELIMITER; return $prefix . $userAgent; } } } } return $userAgent; }
/** * if the UA contains "iPhone" return "apple_iphone_ver1" * if the UA contains "iPod" return "apple_ipod_touch_ver1" * * @param string $userAgent * @return string */ function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContains($userAgent, "iPhone")) { return "apple_iphone_ver1"; } return "apple_ipod_touch_ver1"; }
function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfStartsWith($userAgent, "DoCoMo/2")) { return "docomo_generic_jap_ver2"; } return "docomo_generic_jap_ver1"; }
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::isMobileBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfStartsWith($userAgent, 'Mozilla') && WURFL_Handlers_Utils::checkIfContains($userAgent, 'Safari'); }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('SLCC1', 'Media Center PC', '.NET CLR', 'OfficeLiveConnector'))) { return WURFL_Constants::GENERIC_WEB_BROWSER; } return WURFL_Constants::NO_MATCH; }
public function applyRecoveryMatch($userAgent) { if (WURFL_Handlers_Utils::checkIfContainsAnyOf($userAgent, array('Macintosh', 'Windows'))) { return WURFL_Constants::GENERIC_WEB_BROWSER; } return WURFL_Constants::NO_MATCH; }
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); }
public function canHandle($userAgent) { if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array('Grundig', 'GRUNDIG')); }
/** * Intercept all UAs Containing Firefox 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::checkIfContains($userAgent, "Konqueror"); }
public function canHandle($userAgent) { if (WURFL_Handlers_Utils::isDesktopBrowser($userAgent)) { return false; } return WURFL_Handlers_Utils::checkIfStartsWithAnyOf($userAgent, array('Sagem', 'SAGEM')); }
public function testShouldReturnNegativeOneForInexistantChar() { $haystack = "Mozilla/4.0 (compatible; MSIE 4.0; Windows 95; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; $needle = ":"; $expected = WURFL_Handlers_Utils::ordinalIndexOf($haystack, $needle, 1); $this->assertEquals(-1, $expected); }