public function __construct(Request $request) { $parser = new UAParser(); $this->uaParsedData = $parser->parse($request->headers->get('User-Agent')); }
private function getUserAgentInfoByUAParser($uaString) { $uaInfo = null; $record = null; try { $uaParser = new UAParser(); $record = $uaParser->parse($uaString); } catch (Exception $e) { $record = null; } if ($record != null) { $uaInfo = array(); $os = $record->getOperatingSystem()->getFamily(); if ($os == null || !strcasecmp($os, "other") || !strcasecmp($os, "null")) { $os = ""; } $os_ver = $record->getOperatingSystem()->getMajor(); if ($os_ver == null || !strcasecmp($os_ver, "other") || !strcasecmp($os_ver, "null")) { $os_ver = ""; } if (strcmp($os_ver, '') && strcmp($record->getOperatingSystem()->getMinor(), '')) { $os_ver = $os_ver . '.' . $record->getOperatingSystem()->getMinor(); } if (strcmp($os_ver, '') && strcmp($record->getOperatingSystem()->getPatch(), '')) { $os_ver = $os_ver . '.' . $record->getOperatingSystem()->getPatch(); } $oscode = strtolower($os); $browser = $record->getBrowser()->getFamily(); if ($browser == null || !strcasecmp($browser, "other") || !strcasecmp($browser, "null")) { $browser = ""; } $brws_ver = $record->getBrowser()->getMajor(); if ($brws_ver == null || !strcasecmp($brws_ver, "other") || !strcasecmp($brws_ver, "null")) { $brws_ver = ""; } if (strcmp($brws_ver, '') && strcmp($record->getBrowser()->getMinor(), '')) { $brws_ver = $brws_ver . '.' . $record->getBrowser()->getMinor(); } if (strcmp($brws_ver, '') && strcmp($record->getBrowser()->getPatch(), '')) { $brws_ver = $brws_ver . '.' . $record->getBrowser()->getPatch(); } $brwscode = strtolower($browser); $ismobiledevice = $record->getDevice()->isMobile() || $record->getDevice()->isTablet() || !$record->getDevice()->isDesktop(); $uaInfo['os'] = $os; $uaInfo['os_version'] = $os_ver; $uaInfo['os_code'] = $oscode; $uaInfo['browser'] = $browser; $uaInfo['browser_version'] = $brws_ver; $uaInfo['browser_code'] = $brwscode; $uaInfo['is_mobile'] = $ismobiledevice; } return $uaInfo; }