flamecore/user-agent

Simple browser detection for PHP

dev-master 2016-07-13 18:07 UTC

README

Build Status Scrutinizer Coverage License

This library provides simple browser detection for PHP. It uses a simple and fast algorithm to recognize major browsers.

The UserAgent package was developed for our spam-protection system Gatekeeper.

Why you should use it

PHP provides a native function to detect the user browser: get_browser(). This function requires the browscap.ini file which is 300KB+ in size. Loading and processing this file impacts the script performance. And sometimes, the production server just doesn't provide browscap.ini.

Although get_browser() surely provides excellent detection results, in most cases a much simpler method can be just as effective. The FlameCore UserAgent library has the advantage of being compact and easy to extend.

Usage

To make use of the API, include the vendor autoloader and use the classes:

namespace Acme\MyApplication;

use FlameCore\UserAgent\UserAgent;

require 'vendor/autoload.php';

// Create a user agent object
$userAgent = UserAgent::createFromGlobal();

Then the parsed values can be retrieved using the getter methods:

$userAgent->getBrowserName();      // firefox
$userAgent->getBrowserVersion();   // 3.6
$userAgent->getBrowserEngine();    // gecko
$userAgent->getOperatingSystem();  // linux

When you create a UserAgent object, the current user agent string is used. You can specify another user agent string:

// Use another User Agent string
$userAgent = UserAgent::create('msnbot/2.0b (+http://search.msn.com/msnbot.htm)');
$userAgent->getBrowserName(); // msnbot

// Use current User Agent string
$userAgent = UserAgent::create($_SERVER['HTTP_USER_AGENT']);
// ... which is equivalent to:
$userAgent = UserAgent::createFromGlobal();

Installation

Install via Composer

Create a file called composer.json in your project directory and put the following into it:

{
    "require": {
        "flamecore/user-agent": "dev-master"
    }
}

Install Composer if you don't already have it present on your system:

$ curl -sS https://getcomposer.org/installer | php

Use Composer to download the vendor libraries and generate the vendor/autoload.php file:

$ php composer.phar install

Requirements

  • You must have at least PHP version 5.4 installed on your system.

Contributors

If you want to contribute, please see the CONTRIBUTING file first.

Thanks to the contributors:

  • Christian Neff (secondtruth)