Tuesday 14 August 2018

User Agent Parsing with PHP, JavaScript

Saying the phrase "user agent" or "user agent string" is tantamount to saying a swear word. Developers used to use the user agent to detect if a browser had a given feature, instead of, you know, checking to see if the feature actually existed via object or property detection. Those days are behind us though, but one of the web's dirty secrets is that the user agent still has many uses. One frequent use, for example, is detecting which mobile theme to offer up; this detection can be done on both the client and server sides. I recently found Tobie Langel's ua-parser, a great repo which provides simple UA parsing in JavaScript, PHP, and Python.

Sample User Agent

'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3'
JavaScript Usage
var uaParser = require('ua-parser'), uaParser.parse(navigator.userAgent); 
 console.log(ua.tostring()); // -> "Safari 5.0.1" console.log(ua.toVersionString()); // -> "5.0.1" console.log(ua.family); // -> "Safari" console.log(ua.major); // -> 5 console.log(ua.minor); // -> 0 console.log(ua.patch); // -> 1

PHP Usage// Require the library require("UAParser.php"); 
 // Parse the UA $result = UA::parse();
 // Get loads of information! :) 
print $result->full; 
// -> Chrome 16.0.912/Mac OS X 10.6.8 
 print $result->browserFull; 
// -> "Chrome 16.0.912" 
 print $result->browser; 
// -> "Chrome" print $result->version;
 // -> "16.0.912" 
 print $result->major; 
// -> 16 (minor, build, & revision also available) 
 print $result->osFull;
 // -> "Mac OS X 10.6.8" 
 print $result->os;
 // -> "Mac OS X" 
 print $result->osVersion; 
// -> "10.6.8" 
 print $result->osMajor;
 // -> 10 (osMinor, osBuild, & osRevision also available)




The code samples above are all easily recognizable by those who can use them; using user agent information is simple, and the API is as well. Well done to Tobie for this nice library.

0 comments:

Post a Comment