1
0
Fork 0
mirror of https://github.com/Findus23/devicedetector.net.git synced 2024-09-19 15:43:46 +02:00
devicedetector.net/public/ua.php

67 lines
1.8 KiB
PHP
Raw Normal View History

2019-04-09 20:36:39 +02:00
<?php
namespace DeviceDetectorNet;
require_once '../vendor/autoload.php';
use DeviceDetector\DeviceDetector;
2019-06-25 20:02:30 +02:00
use DeviceDetector\Parser\Client\Browser;
2020-10-27 10:45:52 +01:00
use DeviceDetector\Parser\Device\AbstractDeviceParser;
2019-06-25 20:02:30 +02:00
use DeviceDetector\Parser\OperatingSystem;
use DeviceDetector\Yaml\Symfony;
2019-04-09 20:36:39 +02:00
2020-10-27 10:45:52 +01:00
AbstractDeviceParser::setVersionTruncation(AbstractDeviceParser::VERSION_TRUNCATION_NONE);
2019-04-09 20:36:39 +02:00
$cacheloader = new CacheLoader();
if (!empty($_GET["ua"])) {
$userAgent = $_GET["ua"];
} else {
$userAgent = $_SERVER['HTTP_USER_AGENT'];
}
2019-09-04 11:08:02 +02:00
if (strlen($userAgent) > 1000) {
echo "The user agent has to be shorter than 1000 characters.";
2020-10-27 13:38:26 +01:00
http_response_code(400);
2019-09-04 11:08:02 +02:00
exit();
}
2019-04-09 20:36:39 +02:00
$dd = new DeviceDetector($userAgent);
$dd->setYamlParser(new Symfony());
2019-04-09 20:36:39 +02:00
$cacheloader->configureDeviceDetector($dd);
$dd->parse();
2019-04-10 12:12:22 +02:00
$icons = new IconPath($dd);
2019-04-09 20:36:39 +02:00
if ($dd->isBot()) {
2020-10-27 13:38:26 +01:00
$data = [
"isBot" => true,
"botInfo" => $dd->getBot()
2020-03-27 18:04:12 +01:00
];
2020-10-27 13:38:26 +01:00
} else {
$data = [
"isBot" => false,
"clientInfo" => $dd->getClient(),
"browserFamily" => Browser::getBrowserFamily($dd->getClient('short_name')),
"isMobileOnlyBrowser" => Browser::isMobileOnlyBrowser($dd->getClient('short_name')),
"osInfo" => $dd->getOs(),
"osFamily" => OperatingSystem::getOsFamily($dd->getOs('short_name')),
"device" => $dd->getDevice(),
"deviceName" => $dd->getDeviceName(),
"deviceBrand" => [
"name" => $dd->getBrandName(),
"short_name" => $dd->getBrand()
],
"model" => $dd->getModel(),
"icons" => [
"browser" => $icons->getBrowserLogo(),
"os" => $icons->getOsLogo(),
"device" => $icons->getDeviceTypeLogo(),
"brand" => $icons->getBrandLogo()
]
2019-04-17 21:17:42 +02:00
];
2019-04-09 20:36:39 +02:00
}
2020-10-27 13:38:26 +01:00
2019-04-09 20:36:39 +02:00
header("Content-Type: application/json; charset=UTF-8");
2020-03-27 18:04:12 +01:00
echo json_encode($data, JSON_FORCE_OBJECT);
2019-04-09 20:36:39 +02:00