php解析浏览器请求httpuseragent获取操作系统浏览器版本号等数据代码

代码语言:php

所属分类:其他

代码描述:php解析浏览器请求httpuseragent获取操作系统浏览器版本号等数据代码

代码标签: php 解析 浏览器 请求 httpuseragent 获取 操作 系统 浏览器 版本号 数据 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
const PLATFORM        = 'platform';
const BROWSER         = 'browser';
const BROWSER_VERSION = 'version';


function parse_user_agent($u_agent = null)
{
       
if( $u_agent === null && isset($_SERVER['HTTP_USER_AGENT']) ) {
                        $u_agent
= (string)$_SERVER['HTTP_USER_AGENT'];
               
}

               
if( $u_agent === null ) {
                       
throw new Exception('parse_user_agent requires a user agent');
               
}

                $platform
= null;
                $browser  
= null;
                $version  
= null;

                $return
= [ PLATFORM => &$platform, BROWSER => &$browser, BROWSER_VERSION => &$version ];

               
if( !$u_agent ) {
                       
return $return;
               
}

               
if( preg_match('/\((.*?)\)/m', $u_agent, $parent_matches) ) {
                        preg_match_all
(<<<'REGEX'
/(?P<platform>BB\d+;|Android|Adr|Symbian|Sailfish|CrOS|Tizen|iPhone|iPad|iPod|Linux|(?:Open|Net|Free)BSD|Macintosh|
Windows(?:\ Phone)?|Silk|linux-gnu|BlackBerry|PlayBook|X11|(?:New\ )?Nintendo\ (?:WiiU?|3?DS|Switch)|Xbox(?:\ One)?)
(?:\ [^;]*)?
(?:;|$)/imx
REGEX
                               
, $parent_matches[1], $result);

                        $priority
= [ 'Xbox One', 'Xbox', 'Windows Phone', 'Tizen', 'Android', 'FreeBSD', 'NetBSD', 'OpenBSD', 'CrOS', 'X11', 'Sailfish' ];

                        $result
[PLATFORM] = array_unique($result[PLATFOR.........完整代码请登录后点击上方下载按钮下载查看

网友评论0