AI prompts
base on 👮 A PHP desktop/mobile user agent parser with support for Laravel, based on Mobiledetect Agent
=====
[![Latest Stable Version](http://img.shields.io/packagist/v/jenssegers/agent.svg)](https://packagist.org/packages/jenssegers/agent) [![Total Downloads](http://img.shields.io/packagist/dm/jenssegers/agent.svg)](https://packagist.org/packages/jenssegers/agent) [![Build Status](http://img.shields.io/travis/jenssegers/agent.svg)](https://travis-ci.org/jenssegers/agent) [![Coverage Status](http://img.shields.io/coveralls/jenssegers/agent.svg)](https://coveralls.io/r/jenssegers/agent) [![Donate](https://img.shields.io/badge/donate-paypal-blue.svg)](https://www.paypal.me/jenssegers)
A PHP desktop/mobile user agent parser with support for Laravel, based on [Mobile Detect](https://github.com/serbanghita/Mobile-Detect) with desktop support and additional functionality.
<p align="center">
<img src="https://jenssegers.com/static/media/agent.png" height="275">
</p>
Installation
------------
Install using composer:
```bash
composer require jenssegers/agent
```
Laravel (optional)
------------------
Add the service provider in `config/app.php`:
```php
Jenssegers\Agent\AgentServiceProvider::class,
```
And add the Agent alias to `config/app.php`:
```php
'Agent' => Jenssegers\Agent\Facades\Agent::class,
```
Basic Usage
-----------
Start by creating an `Agent` instance (or use the `Agent` Facade if you are using Laravel):
```php
use Jenssegers\Agent\Agent;
$agent = new Agent();
```
If you want to parse user agents other than the current request in CLI scripts for example, you can use the `setUserAgent` and `setHttpHeaders` methods:
```php
$agent->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2');
$agent->setHttpHeaders($headers);
```
All of the original [Mobile Detect](https://github.com/serbanghita/Mobile-Detect) methods are still available, check out some original examples at https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
### Is?
Check for a certain property in the user agent.
```php
$agent->is('Windows');
$agent->is('Firefox');
$agent->is('iPhone');
$agent->is('OS X');
```
### Magic is-method
Magic method that does the same as the previous `is()` method:
```php
$agent->isAndroidOS();
$agent->isNexus();
$agent->isSafari();
```
### Mobile detection
Check for mobile device:
```php
$agent->isMobile();
$agent->isTablet();
```
### Match user agent
Search the user agent with a regular expression:
```php
$agent->match('regexp');
```
Additional Functionality
------------------------
### Accept languages
Get the browser's accept languages. Example:
```php
$languages = $agent->languages();
// ['nl-nl', 'nl', 'en-us', 'en']
```
### Device name
Get the device name, if mobile. (iPhone, Nexus, AsusTablet, ...)
```php
$device = $agent->device();
```
### Operating system name
Get the operating system. (Ubuntu, Windows, OS X, ...)
```php
$platform = $agent->platform();
```
### Browser name
Get the browser name. (Chrome, IE, Safari, Firefox, ...)
```php
$browser = $agent->browser();
```
### Desktop detection
Check if the user is using a desktop device.
```php
$agent->isDesktop();
```
*This checks if a user is not a mobile device, tablet or robot.*
### Phone detection
Check if the user is using a phone device.
```php
$agent->isPhone();
```
### Robot detection
Check if the user is a robot. This uses [jaybizzle/crawler-detect](https://github.com/JayBizzle/Crawler-Detect) to do the actual robot detection.
```php
$agent->isRobot();
```
### Robot name
Get the robot name.
```php
$robot = $agent->robot();
```
### Browser/platform version
MobileDetect recently added a `version` method that can get the version number for components. To get the browser or platform version you can use:
```php
$browser = $agent->browser();
$version = $agent->version($browser);
$platform = $agent->platform();
$version = $agent->version($platform);
```
*Note, the version method is still in beta, so it might not return the correct result.*
## License
Laravel User Agent is licensed under [The MIT License (MIT)](LICENSE).
## Security contact information
To report a security vulnerability, follow [these steps](https://tidelift.com/security).
", Assign "at most 3 tags" to the expected json: {"id":"4442","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"