Php 用户代理,从字符串中提取操作系统和浏览器
我想从用户代理字符串中提取操作系统的完整名称和浏览器。我如何才能做到这一点?我认为获取完整的操作系统名称和完整的浏览器名称很难,因为许多浏览器识别自己的方式不同。您可能需要一些花哨的正则表达式,然后它可能无法100%的工作 下面是我用来识别浏览器的简单方法。你可以根据自己的需要调整它Php 用户代理,从字符串中提取操作系统和浏览器,php,browser,operating-system,user-agent,Php,Browser,Operating System,User Agent,我想从用户代理字符串中提取操作系统的完整名称和浏览器。我如何才能做到这一点?我认为获取完整的操作系统名称和完整的浏览器名称很难,因为许多浏览器识别自己的方式不同。您可能需要一些花哨的正则表达式,然后它可能无法100%的工作 下面是我用来识别浏览器的简单方法。你可以根据自己的需要调整它 <?php public static function getUserAgent() { static $agent = null; if ( empty($agent) ) {
<?php
public static function getUserAgent()
{
static $agent = null;
if ( empty($agent) ) {
$agent = $_SERVER['HTTP_USER_AGENT'];
if ( stripos($agent, 'Firefox') !== false ) {
$agent = 'firefox';
} elseif ( stripos($agent, 'MSIE') !== false ) {
$agent = 'ie';
} elseif ( stripos($agent, 'iPad') !== false ) {
$agent = 'ipad';
} elseif ( stripos($agent, 'Android') !== false ) {
$agent = 'android';
} elseif ( stripos($agent, 'Chrome') !== false ) {
$agent = 'chrome';
} elseif ( stripos($agent, 'Safari') !== false ) {
$agent = 'safari';
} elseif ( stripos($agent, 'AIR') !== false ) {
$agent = 'air';
} elseif ( stripos($agent, 'Fluid') !== false ) {
$agent = 'fluid';
}
}
return $agent;
}
@augustknight:注意,IE11不发送“MSIE”令牌,我建议在三叉戟令牌中添加一个匹配项
IE 11用户代理示例:
Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
更改代码:
<?php
public static function getUserAgent()
{
static $agent = null;
if ( empty($agent) ) {
$agent = $_SERVER['HTTP_USER_AGENT'];
if ( stripos($agent, 'Firefox') !== false ) {
$agent = 'firefox';
} elseif ( stripos($agent, 'MSIE') !== false ) {
$agent = 'ie';
} elseif ( stripos($agent, 'Trident') !== false ) {
$agent = 'ie';
} elseif ( stripos($agent, 'iPad') !== false ) {
$agent = 'ipad';
} elseif ( stripos($agent, 'Android') !== false ) {
$agent = 'android';
} elseif ( stripos($agent, 'Chrome') !== false ) {
$agent = 'chrome';
} elseif ( stripos($agent, 'Safari') !== false ) {
$agent = 'safari';
} elseif ( stripos($agent, 'AIR') !== false ) {
$agent = 'air';
} elseif ( stripos($agent, 'Fluid') !== false ) {
$agent = 'fluid';
}
}
return $agent;
}
PHP中还有一个内置函数来实现此功能和其他功能:
我建议你考虑做些类似的事情来实现这一点
$agent = get_browser();
echo $agent->platform;
echo $agent->parent; // or $agent->browser . $agent->version