Файл: vendor/whichbrowser/parser/src/Data/Applications.php
Строк: 64
<?php
namespace WhichBrowserData;
use WhichBrowserModelBrowser;
use WhichBrowserModelVersion;
class Applications
{
public static $BOTS = [];
public static $BOTS_REGEX = '';
public static $BROWSERS = [];
public static $BROWSERS_REGEX = '';
public static $OTHERS = [];
public static $OTHERS_REGEX = '';
public static function identifyBrowser($ua)
{
require_once __DIR__ . '/../../data/regexes/applications-browsers.php';
if (preg_match(self::$BROWSERS_REGEX, $ua)) {
require_once __DIR__ . '/../../data/applications-browsers.php';
foreach (self::$BROWSERS as $type => $list) {
foreach ($list as $i => $item) {
if (preg_match($item['regexp'], $ua, $match)) {
return [
'browser' => [
'name' => $item['name'],
'hidden' => isset($item['hidden']) ? $item['hidden'] : false,
'stock' => false,
'channel' => '',
'type' => $type,
'version' => isset($match[1]) && $match[1] ? new Version([ 'value' => $match[1], 'details' => isset($item['details']) ? $item['details'] : null ]) : null
],
'device' => isset($item['type']) ? [
'type' => $item['type']
] : null
];
}
}
}
}
}
public static function identifyOther($ua)
{
require_once __DIR__ . '/../../data/regexes/applications-others.php';
if (preg_match(self::$OTHERS_REGEX, $ua)) {
require_once __DIR__ . '/../../data/applications-others.php';
foreach (self::$OTHERS as $type => $list) {
foreach ($list as $i => $item) {
if (preg_match($item['regexp'], $ua, $match)) {
return [
'browser' => [
'name' => $item['name'],
'hidden' => isset($item['hidden']) ? $item['hidden'] : false,
'stock' => false,
'channel' => '',
'type' => $type,
'version' => isset($match[1]) && $match[1] ? new Version([ 'value' => $match[1], 'details' => isset($item['details']) ? $item['details'] : null ]) : null
],
'device' => isset($item['type']) ? [
'type' => $item['type']
] : null
];
}
}
}
}
}
public static function identifyBot($ua)
{
if (is_null($ua)) {
return;
}
require_once __DIR__ . '/../../data/regexes/applications-bots.php';
if (preg_match(self::$BOTS_REGEX, $ua)) {
require_once __DIR__ . '/../../data/applications-bots.php';
foreach (self::$BOTS as $i => $item) {
if (preg_match($item['regexp'], $ua, $match)) {
return new Browser([
'name' => $item['name'],
'stock' => false,
'version' => isset($match[1]) && $match[1] ? new Version([ 'value' => $match[1], 'details' => isset($item['details']) ? $item['details'] : null ]) : null
]);
}
}
}
}
}