本文发布于1722天前,最后更新于 1713 天前,其中的信息可能已经有所发展或是发生改变。
今天我为wordpress的评论添加了WIN10UA标识判断,自此评论区的UA终于支持win10系统的显示啦!(距离win10发布已过去3年,今年是第四年。。。)
那这我也没办法,这个古老的插件,没有人维护,还好我还是会一点基础的PHP的,还是勉强可以给这个插件加个补丁。具体的显示效果如下
时候不早了,明天早上更新实现方法
先说一下插件,我用的是wp-useragent(博客主题自带插件,无需安装)
来看一下这个插件的主页
看得出来是个年久失修的插件,这也意味着这三年间出现的新浏览器,新系统都无法识别
因此,我需要手动为他添加win10UA支持
实际上还是相当简单的,由于插件会自动获取浏览器UA,我们仅仅只需要修改插件中判断windows系统版本的代码就能实现插件对win10的识别了
具体修改如下:
这里我用到了一个php函数,preg_match()
语法
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 可以被设置为以下标记值:
- PREG_OFFSET_CAPTURE: 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。 注意:这会改变填充到matches参数的数组,使其每个元素成为一个由 第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。
- offset: 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。
返回值
这个函数返回字符串中是否存在我们想要搜索的字符串,如果有就返回1(true)没有就返回0(false)。
匹配字符串时,第一个参数可以使用正则表达式。另外后缀/i的含义是不区分大小写
具体UA可参照网上的数据
浏览器 | userAgent |
---|---|
Chrome | Mozilla/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 |
IE11 | Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko |
Edge | Mozilla/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阵列
Edge浏览器win10UA标识显示测试!看亚子Edge浏览器是识别失败了,不过win10显示正常
算了明天再修,先洗洗睡吧,明早还有网课。。。
睡前打卡