campo / random-user-agent
Generate real random user-agents.
Installs: 1 018 197
Dependents: 30
Suggesters: 0
Security: 0
Stars: 144
Watchers: 7
Forks: 26
Open Issues: 0
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ^5.0
README
Generate real random user-agents. The user agent list is largely pulled from the Firefox extension random-agent-spoofer h/t dillbyrne/random-agent-spoofer. Additional entries were sourced from UserAgentString.com and WiiBrew to provide more options for consoles and common web crawlers
You should be running at least PHP 5.4 to use this class
Install
Via Composer
$ composer require campo/random-user-agent
Usage
Generating a User Agent
To generate a random user agent, you can simply use the following:
echo \Campo\UserAgent::random(), "\n";
Filtering the Type of User Agent
To limit the types of user agents that are returned, you can pass a filter array to random():
echo \Campo\UserAgent::random([ 'os_type' => 'Windows', 'device_type' => 'Mobile' ]), "\n";
A filter is simply an array with key-value pairs specifying the types of agent strings that you want to have returned. The types of keys in this filtered array may include the following:
agent_name
agent_type
device_type
os_name
os_type
Filters also support passing additional arrays to better segment the results you will receive from random():
echo \Campo\UserAgent::random([ 'os_type' => ['Android', 'iOS'], 'device_type' => ['Mobile', 'Tablet'] ]), "\n";
The above will return only user-agent’s for Android & iOS OS types that are either mobile or tablets.
To get a list of values that can be accepted by these filter fields, you can use the following methods which will return arrays of values that can be used with the respected fields noted above:
UserAgent::getDeviceTypes()
UserAgent::getAgentTypes()
UserAgent::getAgentNames()
UserAgent::getOSTypes()
UserAgent::getOSNames()
Values passed to filters are case-insensitive
Error Handling
This class will throw an exception if either a filter returns no user agent strings, which means that a filter was invalid or too specific, or if one of the fields above was not present, which means that this library has been corrupted.
License
The MIT License (MIT). Please see License File for more information.