public static function challenge($ua, &$result) { $data = null; $os_version = null; if (strpos($ua, '(Win98;') > -1) { $data = DataSet::get('Win98'); $os_version = '98'; } elseif (strpos($ua, 'Macintosh; U; PPC;') > -1 || strpos($ua, 'Mac_PowerPC') > -1) { $data = DataSet::get('MacOS'); if (preg_match('/rv:(\\d+\\.\\d+\\.\\d+)/', $ua, $matches) === 1) { $os_version = $matches[1]; } } elseif (strpos($ua, 'X11; FreeBSD ') > -1) { $data = DataSet::get('BSD'); if (preg_match('/FreeBSD ([^;\\)]+);/', $ua, $matches) === 1) { $os_version = $matches[1]; } } elseif (strpos($ua, 'X11; CrOS ') > -1) { $data = DataSet::get('ChromeOS'); if (preg_match('/CrOS ([^\\)]+)\\)/', $ua, $matches) === 1) { $os_version = $matches[1]; } } if ($data) { static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_NAME]); if ($os_version) { static::updateOsVersion($result, $os_version); } return true; } return false; }
public static function challenge($ua, &$result) { if (strpos($ua, 'jig browser') !== false) { static::updateMap($result, DataSet::get('jig')); if (preg_match('/jig browser[^;]+; ([^\\);]+)/Du', $ua, $matches)) { static::updateVersion($result, $matches[1]); } return true; } elseif (strpos($ua, 'emobile/') !== false || strpos($ua, 'OpenBrowser') !== false || strpos($ua, 'Browser/Obigo-Browser') !== false) { static::updateMap($result, DataSet::get('emobile')); return true; } elseif (strpos($ua, 'SymbianOS') !== false) { static::updateMap($result, DataSet::get('SymbianOS')); return true; } elseif (strpos($ua, 'Hatena-Mobile-Gateway/') !== false) { $data = DataSet::get('MobileTranscoder'); static::updateMap($result, $data); static::updateVersion($result, 'Hatena'); return true; } elseif (strpos($ua, 'livedoor-Mobile-Gateway/') !== false) { $data = DataSet::get('MobileTranscoder'); static::updateMap($result, $data); static::updateVersion($result, 'livedoor'); return true; } return false; }
public static function challenge($ua, &$result) { $data = null; $version = null; if (strpos($ua, 'PSP (PlayStation Portable);') !== false) { $data = DataSet::get('PSP'); if (preg_match('/PSP \\(PlayStation Portable\\); ([.0-9]+)\\)/', $ua, $matches) === 1) { $version = $matches[1]; } } elseif (strpos($ua, 'PlayStation Vita') !== false) { $data = DataSet::get('PSVita'); if (preg_match('/PlayStation Vita ([.0-9]+)\\)/', $ua, $matches) === 1) { $version = $matches[1]; } } elseif (strpos($ua, 'PLAYSTATION 3 ') !== false || strpos($ua, 'PLAYSTATION 3;') !== false) { $data = DataSet::get('PS3'); if (preg_match('/PLAYSTATION 3;? ([.0-9]+)\\)/', $ua, $matches) === 1) { $version = $matches[1]; } } elseif (strpos($ua, 'PlayStation 4 ') !== false) { $data = DataSet::get('PS4'); if (preg_match('/PlayStation 4 ([.0-9]+)\\)/', $ua, $matches) === 1) { $version = $matches[1]; } } if (is_null($data)) { return false; } static::updateMap($result, $data); if ($version) { static::updateOsVersion($result, $version); } return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Safari/') === false) { return false; } $version = DataSet::VALUE_UNKNOWN; $epos = strpos($ua, 'Edge'); if ($epos > -1) { if (preg_match('#Edge/([.0-9]+)#', $ua, $matches)) { $version = $matches[1]; static::updateMap($result, DataSet::get('Edge')); static::updateVersion($result, $version); return true; } } $fpos = strpos($ua, 'FxiOS'); if ($fpos > -1) { if (preg_match('/FxiOS\\/([.0-9]+)/', $ua, $matches)) { $version = $matches[1]; static::updateMap($result, DataSet::get('Firefox')); static::updateVersion($result, $version); return true; } } $cpos = strpos($ua, 'Chrome'); if ($cpos === false) { $cpos = strpos($ua, 'CrMo'); } if ($cpos === false) { $cpos = strpos($ua, 'CriOS'); } if ($cpos !== false) { $opos = strpos($ua, 'OPR'); if ($opos !== false) { if (preg_match('/OPR\\/([.0-9]+)/', $ua, $matches)) { $version = $matches[1]; static::updateMap($result, DataSet::get('Opera')); static::updateVersion($result, $version); return true; } } } if (strpos($ua, 'Chrome') !== false || strpos($ua, 'CrMo') !== false || strpos($ua, 'CriOS') !== false) { if (preg_match('/(?:Chrome|CrMo|CriOS)\\/([.0-9]+)/uD', $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('Chrome')); static::updateVersion($result, $version); return true; } if (preg_match('/Version\\/([.0-9]+)/uD', $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('Safari')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Windows') === false) { return false; } // Xbox Series if (strpos($ua, 'Xbox') !== false) { if (strpos($ua, 'Xbox; Xbox One)') !== false) { $data = DataSet::get('XboxOne'); } else { $data = DataSet::get('Xbox360'); } static::updateMap($result, $data); return true; } $data = DataSet::get('Win'); if (preg_match('/Windows ([ .a-zA-Z0-9]+)[;\\)]/', $ua, $matches) === 0) { static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_NAME]); return true; } $version = $matches[1]; if ($version === 'NT 10.0') { $data = DataSet::get('Win10'); } elseif ($version === 'NT 6.3') { $data = DataSet::get('Win8.1'); } elseif ($version === 'NT 6.2') { $data = DataSet::get('Win8'); } elseif ($version === 'NT 6.1') { $data = DataSet::get('Win7'); } elseif ($version === 'NT 6.0') { $data = DataSet::get('WinVista'); } elseif ($version === 'NT 5.1') { $data = DataSet::get('WinXP'); } elseif (strpos($version, 'Phone') === 0) { $data = DataSet::get('WinPhone'); if (preg_match('/Phone(?: OS)? ([.0-9]+)/', $ua, $matches) === 1) { $version = $matches[1]; } } elseif ($version === 'NT 5.0') { $data = DataSet::get('Win2000'); } elseif ($version === 'NT 4.0') { $data = DataSet::get('WinNT4'); } elseif ($version === '98') { $data = DataSet::get('Win98'); } elseif ($version === '95') { $data = DataSet::get('Win95'); } elseif ($version === 'CE') { $data = DataSet::get('WinCE'); } static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_NAME]); static::updateOsVersion($result, $version); return true; }
public static function challenge($ua, &$result) { $data = null; if (strpos($ua, 'InettvBrowser/') !== false) { $data = DataSet::get('DigitalTV'); } if (is_null($data)) { return false; } static::updateMap($result, $data); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'KDDI-') === false) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match(self::VERSION_PATTERN, $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('au')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Firefox/') === false) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match('/Firefox\\/([.0-9]+)/', $ua, $matches) === 1) { $version = $matches[1]; } static::updateMap($result, DataSet::get('Firefox')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { $data = null; if (preg_match('/rss(reader|bar|[-_ \\/;\\(\\)]|[ +]*\\/)/Dui', $ua, $matches) === 1 || preg_match('/headline-reader/Dui', $ua, $matches) === 1) { $data = DataSet::get('VariousRSSReader'); } elseif (strpos($ua, 'cococ/') !== false) { $data = DataSet::get('VariousRSSReader'); } if (is_null($data)) { return false; } static::updateMap($result, $data); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Sleipnir/') === false) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match('/Sleipnir\\/([.0-9]+)/Du', $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('Sleipnir')); static::updateVersion($result, $version); $win = DataSet::get('Win'); static::updateCategory($result, $win[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $win[DataSet::DATASET_KEY_NAME]); return true; }
public static function challenge($ua, &$result) { // See \Woothee\AgentCategory\Browser\SafariChrome for new Opera (w/ blink) if (strpos($ua, 'Opera') === false) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match('/Version\\/([.0-9]+)/Du', $ua, $matches)) { $version = $matches[1]; } elseif (preg_match('/Opera[\\/ ]([.0-9]+)/Du', $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('Opera')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'like Mac OS X') < 0) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match('/iP(?:hone;|ad;|od) .*like Mac OS X/', $ua, $matches)) { if (preg_match('#Version/([.0-9]+)#', $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('Webview')); static::updateVersion($result, $version); return true; } return false; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Nintendo DSi;') !== false) { $data = DataSet::get('NintendoDSi'); static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_OS]); return true; } if (strpos($ua, 'Nintendo Wii;') !== false) { $data = DataSet::get('NintendoWii'); static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_OS]); return true; } return false; }
public static function challenge($ua, &$result) { $data = null; if (strpos($ua, 'AppleSyndication/') !== false) { $data = DataSet::get('SafariRSSReader'); } elseif (strpos($ua, 'compatible; Google Desktop/') !== false) { $data = DataSet::get('GoogleDesktop'); } elseif (strpos($ua, 'Windows-RSS-Platform') !== false) { $data = DataSet::get('WindowsRSSReader'); } if (is_null($data)) { return false; } static::updateMap($result, $data); return true; }
public static function challenge($ua, &$result) { $pos = strpos($ua, 'WILLCOM'); if ($pos === false) { $pos = strpos($ua, 'DDIPOCKET'); } if ($pos === false) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match(self::VERSION_PATTERN, $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('willcom')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'compatible; MSIE') !== false || strpos($ua, 'Trident/') !== false || strpos($ua, 'IEMobile') !== false) { $version = DataSet::VALUE_UNKNOWN; if (preg_match('/MSIE ([.0-9]+);/', $ua, $matches) === 1) { $version = $matches[1]; } elseif (preg_match('/Trident\\/([.0-9]+);/', $ua) === 1 && preg_match('/rv:([.0-9]+)/', $ua, $matches) === 1) { $version = $matches[1]; } elseif (preg_match('/IEMobile\\/([.0-9]+);/', $ua, $matches) === 1) { $version = $matches[1]; } static::updateMap($result, DataSet::get('MSIE')); static::updateVersion($result, $version); return true; } return false; }
public static function challenge($ua, &$result) { $data = null; if (strpos($ua, 'Nintendo 3DS;') !== false) { $data = DataSet::get('Nintendo3DS'); } elseif (strpos($ua, 'Nintendo DSi;') !== false) { $data = DataSet::get('NintendoDSi'); } elseif (strpos($ua, 'Nintendo Wii;') !== false) { $data = DataSet::get('NintendoWii'); } elseif (strpos($ua, '(Nintendo WiiU)') !== false) { $data = DataSet::get('NintendoWiiU'); } if (is_null($data)) { return false; } static::updateMap($result, $data); return true; }
public static function challenge($ua, &$result) { $data = null; $version = null; if (strpos($ua, 'iPod') !== false) { $data = DataSet::get('iPod'); $version = static::parseIosVersion($ua); } elseif (strpos($ua, 'iPad') !== false) { $data = DataSet::get('iPad'); $version = static::parseIosVersion($ua); } elseif (strpos($ua, 'iPhone') !== false) { $data = DataSet::get('iPhone'); $version = static::parseIosVersion($ua); } elseif (strpos($ua, 'Android') !== false) { $data = DataSet::get('Android'); } elseif (strpos($ua, 'CFNetwork') !== false) { $data = DataSet::get('iOS'); } elseif (strpos($ua, 'BB10') !== false) { $data = DataSet::get('BlackBerry10'); if (preg_match('#BB10(?:.+)Version/([.0-9]+)#', $ua, $matches)) { $version = $matches[1]; } } elseif (strpos($ua, 'BlackBerry') !== false) { $data = DataSet::get('BlackBerry'); if (preg_match('/BlackBerry(?:\\d+)\\/([.0-9]+) /', $ua, $matches) === 1) { $version = $matches[1]; } } if (isset($result[DataSet::DATASET_KEY_NAME]) && $result[DataSet::DATASET_KEY_NAME] === 'Firefox') { if (preg_match('/^Mozilla\\/[.0-9]+ \\((?:Mobile|Tablet);(?:.*;)? rv:([.0-9]+)\\) Gecko\\/[.0-9]+ Firefox\\/[.0-9]+$/', $ua, $matches) === 1) { $data = DataSet::get('FirefoxOS'); $version = $matches[1]; } } if (is_null($data)) { return false; } static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_NAME]); if ($version) { static::updateOsVersion($result, $version); } return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'KDDI-') !== false) { if (preg_match(Au::VERSION_PATTERN, $ua, $matches) === 1) { $term = $matches[1]; $data = DataSet::get('au'); static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_OS]); static::updateVersion($result, $term); return true; } } if (strpos($ua, 'WILLCOM') !== false || strpos($ua, 'DDIPOCKET') !== false) { if (preg_match(Willcom::VERSION_PATTERN, $ua, $matches) === 1) { $term = $matches[1]; $data = DataSet::get('willcom'); static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_OS]); static::updateVersion($result, $term); return true; } } if (strpos($ua, 'SymbianOS') !== false) { $data = DataSet::get('SymbianOS'); static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_OS]); return true; } if (strpos($ua, 'Google Wireless Transcoder') !== false) { $data = DataSet::get('MobileTranscoder'); static::updateMap($result, $data); static::updateVersion($result, 'Google'); return true; } if (strpos($ua, 'Naver Transcoder') !== false) { $data = DataSet::get('MobileTranscoder'); static::updateMap($result, $data); static::updateVersion($result, 'Naver'); return true; } return false; }
public static function challenge($ua, &$result) { $pos = strpos($ua, 'SoftBank'); if ($pos === false) { $pos = strpos($ua, 'Vodafone'); } if ($pos === false) { $pos = strpos($ua, 'J-PHONE'); } if ($pos === false) { return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match('/(?:SoftBank|Vodafone|J-PHONE)\\/[.0-9]+\\/([^ \\/;\\(\\)]+)/Du', $ua, $matches)) { $version = $matches[1]; } static::updateMap($result, DataSet::get('SoftBank')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Linux') === false) { return false; } $data = DataSet::get('Linux'); $version = null; if (strpos($ua, 'Android') !== false) { $data = DataSet::get('Android'); if (preg_match('/Android[- ](\\d+\\.\\d+(?:\\.\\d+)?)/', $ua, $matches)) { $version = $matches[1]; } } static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_NAME]); if ($version) { static::updateOsVersion($result, $version); } return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Mac OS X') === false) { return false; } $data = DataSet::get('OSX'); $version = null; if (strpos($ua, 'like Mac OS X') !== false) { return false; } else { if (preg_match('/Mac OS X (10[._]\\d+(?:[._]\\d+)?)(?:\\)|;)/', $ua, $matches) === 1) { $version = str_replace('_', '.', $matches[1]); } } static::updateCategory($result, $data[DataSet::DATASET_KEY_CATEGORY]); static::updateOs($result, $data[DataSet::DATASET_KEY_NAME]); if ($version) { static::updateOsVersion($result, $version); } return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Google') === false) { return false; } if (strpos($ua, 'compatible; Googlebot') !== false) { // Googlebot or Googlebot-Mobile if (strpos($ua, 'compatible; Googlebot-Mobile') !== false) { static::updateMap($result, DataSet::get('GoogleBotMobile')); return true; } else { static::updateMap($result, DataSet::get('GoogleBot')); return true; } } if (strpos($ua, 'Googlebot-Image/') !== false) { static::updateMap($result, DataSet::get('GoogleBot')); return true; } if (strpos($ua, 'Mediapartners-Google') !== false) { if (strpos($ua, 'compatible; Mediapartners-Google') !== false || $ua === 'Mediapartners-Google') { static::updateMap($result, DataSet::get('GoogleMediaPartners')); return true; } } if (strpos($ua, 'Feedfetcher-Google;') !== false) { static::updateMap($result, DataSet::get('GoogleFeedFetcher')); return true; } if (strpos($ua, 'AppEngine-Google') !== false) { static::updateMap($result, DataSet::get('GoogleAppEngine')); return true; } if (strpos($ua, 'Google Web Preview') !== false) { static::updateMap($result, DataSet::get('GoogleWebPreview')); return true; } return false; }
public static function challenge($ua, &$result) { $pos = strpos($ua, 'DoCoMo'); if ($pos === false) { $pos = strpos($ua, ';FOMA;'); } if ($pos === false) { // not DoCoMo return false; } $version = DataSet::VALUE_UNKNOWN; if (preg_match('/DoCoMo\\/[.0-9]+[ \\/]([^- \\/;\\(\\)"\'\\]+)\']+)/Du', $ua, $matches) === 1) { $version = $matches[1]; } else { if (preg_match('/\\(([^;\\)]+);FOMA;/Du', $ua, $matches)) { $version = $matches[1]; } } static::updateMap($result, DataSet::get('docomo')); static::updateVersion($result, $version); return true; }
public static function challenge($ua, &$result) { $data = null; $version = null; if (strpos($ua, 'Apache-HttpClient/') === 0 || strpos($ua, 'Jakarta Commons-HttpClient/') === 0 || strpos($ua, 'Java/') === 0) { $data = DataSet::get('HTTPLibrary'); $version = 'Java'; } elseif (preg_match('/[- ]HttpClient(\\/|$)/Du', $ua, $matches) === 1) { $data = DataSet::get('HTTPLibrary'); $version = 'Java'; } elseif (strpos($ua, 'Java(TM) 2 Runtime Environment,') !== false) { $data = DataSet::get('HTTPLibrary'); $version = 'Java'; } elseif (strpos($ua, 'Wget/') === 0) { $data = DataSet::get('HTTPLibrary'); $version = 'wget'; } elseif (strpos($ua, 'libwww-perl') === 0 || strpos($ua, 'WWW-Mechanize') === 0 || strpos($ua, 'LWP::Simple') === 0 || strpos($ua, 'LWP ') === 0 || strpos($ua, 'lwp-trivial') === 0) { $data = DataSet::get('HTTPLibrary'); $version = 'perl'; } elseif (strpos($ua, 'Ruby') === 0 || strpos($ua, 'feedzirra') === 0 || strpos($ua, 'Typhoeus') === 0) { $data = DataSet::get('HTTPLibrary'); $version = 'ruby'; } elseif (strpos($ua, 'Python-urllib/') === 0 || strpos($ua, 'Twisted ') === 0) { $data = DataSet::get('HTTPLibrary'); $version = 'python'; } elseif (strpos($ua, 'PHP') === 0 || strpos($ua, 'WordPress/') === 0 || strpos($ua, 'CakePHP') === 0 || strpos($ua, 'PukiWiki/') === 0 || strpos($ua, 'PECL::HTTP') === 0 || preg_match('/(?:PEAR |)HTTP_Request(?: class|2)/Du', $ua, $matches) === 1) { $data = DataSet::get('HTTPLibrary'); $version = 'php'; } if (is_null($data)) { return false; } static::updateMap($result, $data); if ($version) { static::updateVersion($result, $version); } return true; }
public static function challenge($ua, &$result) { if (strpos($ua, 'Yahoo') !== false || strpos($ua, 'help.yahoo.co.jp/help/jp/') !== false || strpos($ua, 'listing.yahoo.co.jp/support/faq/') !== false) { if (strpos($ua, 'compatible; Yahoo! Slurp') !== false) { static::updateMap($result, DataSet::get('YahooSlurp')); return true; } elseif (strpos($ua, 'YahooFeedSeekerJp') !== false || strpos($ua, 'YahooFeedSeekerBetaJp') !== false) { static::updateMap($result, DataSet::get('YahooJP')); return true; } elseif (strpos($ua, 'Y!J-BRZ/YATSHA crawler') !== false || strpos($ua, 'Y!J-BRY/YATSH crawler')) { static::updateMap($result, DataSet::get('YahooJP')); return true; } elseif (strpos($ua, 'crawler (http://listing.yahoo.co.jp/support/faq/') !== false || strpos($ua, 'crawler (http://help.yahoo.co.jp/help/jp/') !== false) { static::updateMap($result, DataSet::get('YahooJP')); return true; } elseif (strpos($ua, 'Yahoo Pipes') !== false) { static::updateMap($result, DataSet::get('YahooPipes')); return true; } } elseif (strpos($ua, 'msnbot') !== false) { static::updateMap($result, DataSet::get('msnbot')); return true; } elseif (strpos($ua, 'bingbot') !== false) { if (strpos($ua, 'compatible; bingbot') !== false) { static::updateMap($result, DataSet::get('bingbot')); return true; } } elseif (strpos($ua, 'Baidu') !== false) { if (strpos($ua, 'compatible; Baiduspider') !== false || strpos($ua, 'Baiduspider+') !== false || strpos($ua, 'Baiduspider-image+') !== false) { static::updateMap($result, DataSet::get('Baiduspider')); return true; } } elseif (strpos($ua, 'Yeti') !== false) { if (strpos($ua, 'http://help.naver.com/robots') !== false) { static::updateMap($result, DataSet::get('Yeti')); return true; } } elseif (strpos($ua, 'FeedBurner/') !== false) { static::updateMap($result, DataSet::get('FeedBurner')); return true; } elseif (strpos($ua, 'facebookexternalhit') !== false) { static::updateMap($result, DataSet::get('facebook')); return true; } elseif (strpos($ua, 'Twitterbot/') !== false) { static::updateMap($result, DataSet::get('twitter')); return true; } elseif (strpos($ua, 'ichiro') !== false) { if (strpos($ua, 'http://help.goo.ne.jp/door/crawler.html') !== false || strpos($ua, 'compatible; ichiro/mobile goo;') !== false) { static::updateMap($result, DataSet::get('goo')); return true; } } elseif (strpos($ua, 'gooblogsearch/') !== false) { static::updateMap($result, DataSet::get('goo')); return true; } elseif (strpos($ua, 'Apple-PubSub') !== false) { static::updateMap($result, DataSet::get('ApplePubSub')); return true; } elseif (strpos($ua, '(www.radian6.com/crawler)') !== false) { static::updateMap($result, DataSet::get('radian6')); return true; } elseif (strpos($ua, 'Genieo/') !== false) { static::updateMap($result, DataSet::get('Genieo')); return true; } elseif (strpos($ua, 'labs.topsy.com/butterfly/') !== false) { static::updateMap($result, DataSet::get('topsyButterfly')); return true; } elseif (strpos($ua, 'rogerbot/1.0 (http://www.seomoz.org/dp/rogerbot') !== false) { static::updateMap($result, DataSet::get('rogerbot')); return true; } elseif (strpos($ua, 'compatible; AhrefsBot/') !== false) { static::updateMap($result, DataSet::get('AhrefsBot')); return true; } elseif (strpos($ua, 'livedoor FeedFetcher') !== false || strpos($ua, 'Fastladder FeedFetcher') !== false) { static::updateMap($result, DataSet::get('livedoorFeedFetcher')); return true; } elseif (strpos($ua, 'Hatena ') !== false) { if (strpos($ua, 'Hatena Antenna') !== false || strpos($ua, 'Hatena Pagetitle Agent') !== false || strpos($ua, 'Hatena Diary RSS') !== false) { static::updateMap($result, DataSet::get('Hatena')); return true; } } elseif (strpos($ua, 'mixi-check') !== false || strpos($ua, 'mixi-crawler') !== false || strpos($ua, 'mixi-news-crawler') !== false) { static::updateMap($result, DataSet::get('mixi')); return true; } elseif (strpos($ua, 'Indy Library') !== false) { if (strpos($ua, 'compatible; Indy Library') !== false) { static::updateMap($result, DataSet::get('IndyLibrary')); return true; } } return false; }