本文发布于 2020-03-04, 最后更新于 2357 天前,其中的信息可能已经有所发展或是发生改变。

文章摘要

今天我为wordpress的评论添加了WIN10UA标识判断,自此评论区的UA终于支持win10系统的显示啦!(距离win10发布已过去3年,今年是第四年。。。) 那这我也没办法,这个古老的插件,没有人维护,还好我还是会一点基础的PHP的,还是勉强可以给这个插件加个补丁。具体的显示效果如下 时候不早了,明天早上更新实现方法 先说一下插件,我用的是wp-useragent(博客主题自带插件,无需安装…

今天我为wordpress的评论添加了WIN10UA标识判断,自此评论区的UA终于支持win10系统的显示啦!(距离win10发布已过去3年,今年是第四年。。。)

那这我也没办法,这个古老的插件,没有人维护,还好我还是会一点基础的PHP的,还是勉强可以给这个插件加个补丁。具体的显示效果如下

Win10UA显示效果

时候不早了,明天早上更新实现方法

先说一下插件,我用的是wp-useragent(博客主题自带插件,无需安装)

来看一下这个插件的主页

插件主页

看得出来是个年久失修的插件,这也意味着这三年间出现的新浏览器,新系统都无法识别

因此,我需要手动为他添加win10UA支持

实际上还是相当简单的,由于插件会自动获取浏览器UA,我们仅仅只需要修改插件中判断windows系统版本的代码就能实现插件对win10的识别了

具体修改如下:

UA代码截图

这里我用到了一个php函数,preg_match()

语法

smali (Auto identified)
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
    • $pattern: 要搜索的模式,字符串形式。
    • $subject: 输入字符串。
    • $matches: 如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
    • $flags:flags 可以被设置为以下标记值:
      1. PREG_OFFSET_CAPTURE: 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。 注意:这会改变填充到matches参数的数组,使其每个元素成为一个由 第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。
    • offset: 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。

返回值

这个函数返回字符串中是否存在我们想要搜索的字符串,如果有就返回1(true)没有就返回0(false)。

匹配字符串时,第一个参数可以使用正则表达式。另外后缀/i的含义是不区分大小写

具体UA可参照网上的数据

浏览器userAgent
ChromeMozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
360极速 兼容模式Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
360极速 极速模式Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
火狐开发者Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
火狐Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
搜狗高速Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0
IE11Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
EdgeMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
QQ极速Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5680.400 QQBrowser/10.2.1852.400
QQ兼容Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Core/1.63.5680.400 QQBrowser/10.2.1852.400; rv:11.0) like Gecko

我是参考CSDN上的数据的:传送门

最后吐槽一下这个php的if阵列

九仞之行

严于律己,宽以待人,深自警省,讷言敏行

订阅
💬 评论 (2)
S
Styunlen博主Chrome 70 · Windows 10中国

睡前打卡

Styunlen博主Chrome 64 · Windows 10中国

Edge浏览器win10UA标识显示测试!

看亚子Edge浏览器是识别失败了,不过win10显示正常

算了明天再修,先洗洗睡吧,明早还有网课。。。

编辑器加载中…