• Stars
    star
    429
  • Rank 100,945 (Top 2 %)
  • Language
    PHP
  • License
    MIT License
  • Created over 14 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Standalone replacement for php's native get_browser() function

Browser Capabilities PHP Project

Hacking around with PHP to have a better solution than get_browser()

Build Status

Changes (new version - 2.0)

Please see changelog for a list of recent changes. (huge performance improvements!)

Introduction

The browscap.ini file is a database which provides a lot of details about browsers and their capabilities, such as name, versions, Javascript support and so on.

Please note: browscap.ini was maintained by Gary Keith and is now maintained by RAD Moose. More information about the transfer of owners can be found here. Browscap.ini source files are currently available at a temporary location (http://tempdownloads.browserscap.com/). All the links in Browscap class are updated, but if you use custom links remember to change them!

PHP's native get_browser() function parses this file and provides you with a complete set of information about every browser's details, But it requires the path to the browscap.ini file to be specified in the php.ini browscap directive which is flagged as PHP_INI_SYSTEM.

Since in most shared hosting environments you have not access to the php.ini file, the browscap directive cannot be modified and you are stuck with either and outdated database or without browscap support at all.

Browscap is a standalone class for PHP >=5.3 that gets around the limitations of get_browser() and manages the whole thing. It offers methods to update, cache, adapt and get details about every supplied user agent on a standalone basis. It's also much faster than get_browser() while still returning the same results.

Browscap is a Composer package.

Quick start

A quick start guide is available on the GitHub wiki, at the following address: https://github.com/GaretJax/phpbrowscap/wiki/QuickStart

Features

Here is a non-exhaustive feature list of the Browscap class:

  • Very fast
    • at least 3 times faster than get_browser() when not using opcache
    • 20 or more times faster than get_browser() when using opcache (see tests)
  • Standalone and fully PHP configuration independent (no need for php.ini setting)
  • Fully get_browser() compatible (with some get_browser() bugs fixed)
  • User agent auto-detection
  • Returns object or array
  • Parsed .ini file cached directly into PHP arrays (leverages opcache)
  • Accepts any .ini file (even ASP and lite versions)
  • Auto updated browscap.ini file and cache from remote server with version checking
  • Fully configurable, including configurable remote update server and update schedules
  • PHP >= 5.3 compatible
  • Released under the MIT License

Issues and feature requests

Please report your issues and ask for new features on the GitHub Issue Tracker at https://github.com/GaretJax/phpbrowscap/issues

Please report incorrectly identified User Agents and browser detect in the browscap.ini file on Google Groups here: https://groups.google.com/forum/#!forum/browscap

Please note that the Browscap class only parses and queries the browscap.ini database provided by RAD Moose (previously by Gary Keith). If a browser is wrongly identified or a results presents erroneous properties, please refer directly to the temporary browscap project homepage at: http://tempdownloads.browserscap.com/ or post your misidentified browser and User Agent at the Browscap Google Groups page: https://groups.google.com/forum/#!forum/browscap

More Repositories

1

django-click

Write Django management command using the click CLI library
Python
242
star
2

CardReader

jQuery based magnetic stripe card reader for web applications
JavaScript
29
star
3

lancet

Command line utility to streamline various development activities.
Python
9
star
4

pyamqplib-thrift

Thrift classes to use thrift services over AMQP with pyamqplib
Python
6
star
5

Bootloader

A simple bootleader for M68k processors
C
6
star
6

pytex

A command line tool to ease the redaction of latex documents
Python
4
star
7

i18n-utils

Python
3
star
8

RGBixtouri

Java
3
star
9

shibboleth-prototype

Python
3
star
10

txBERT-RPC

Twisted client and server implementation of the BERT-RPC protocol
Python
2
star
11

coolfig

Helpers for dealing with application settings
Python
2
star
12

django-adminutils

Python
2
star
13

osms

oSMS web framework and application
PHP
2
star
14

eiafr-prolog

Prolog
2
star
15

pop-utils

Collection of utilities to optimize the deployment and management of a POP-C++ or POP-Java based setup with a special focus on cloud deployments and Amazon Web Services.
C++
1
star
16

unm-blog

Repository for the blog put up for my stay at UNM, 2011
1
star
17

python-tidy

Tiny wrapper around PythonTidy to make it easy-installable
1
star
18

pop-analysis-suite

C++
1
star
19

uga

Source code of the UGA website
1
star
20

mddns

Python
1
star
21

misp-tr-cli

Python
1
star
22

pytex-templates

Collection of templates for the pytex command line utility
1
star
23

Fribourg-Website

The source code of the website of fribourg-natation
Python
1
star
24

pop-python

Python implementation of the POP Model
Python
1
star
25

dockertools

Command line utilities to make working with Docker easier.
Python
1
star
26

csel-sp05-sp06

C
1
star
27

docker-storage

Python
1
star
28

pop-linker

POP-C++ version of the pop-link registration middleware
C++
1
star
29

garetjax.github.io

Sources for my weblog.
CSS
1
star
30

irco

International Research Collaboration graphs utility
Python
1
star
31

s3ftp

A Twisted based FTP server backed by Amazon S3
Python
1
star
32

opsa-labs

Labs reports and source code for the OPSA MSE course
Python
1
star
33

Cornflakes

An HTML5 output generator for PyFlakes
1
star
34

django-kerberos

Python
1
star
35

sourcecoding

Python
1
star