开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

使用 PHP、JavaScript 或 Python 解析用户代理

说短语“用户代理”或“用户代理字符串”无异于说脏话。开发人员过去常常使用用户代理来检测浏览器是否具有给定功能,而不是通过对象或属性检测来检查该功能是否实际存在。虽然那些日子已经过去了,但是网络的肮脏秘密之一是用户代理仍然有很多用途。例如,一种常见的用途是检测提供哪个移动主题;这种检测可以在客户端和服务器端进行。我最近发现了 Tobie Langel 的 ua-parser,这是一个很棒的存储库,它提供了简单的 JavaScript、PHP 和 Python 用户分析。

示例用户代理

'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 用法

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 使用

// 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)

Python 用法

# Import the lib
from ua_parser import user_agent_parser

# Parse the user agent
user_agent_parser.Parse(request.META.get('HTTP_USER_AGENT'))

print result_dict['user_agent']
# {'major': '5', 'minor': '1', 'family': 'Mobile Safari', 'patch': None}

print result_dict['os']
# {'major': '5', 'patch_minor': None, 'minor': '1', 'family': 'iOS', 'patch': None}

print result_dict['device']
# {'is_spider': False, 'is_mobile': True, 'family': 'iPhone'}

上面的代码示例对于会使用它们的人来说都是很容易识别的;使用用户代理信息很简单,API 也很简单。 Tobie 为这个漂亮的图书馆干得好。

未经允许不得转载:我爱分享网 » 使用 PHP、JavaScript 或 Python 解析用户代理

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏