wordpress 博客评论无插件实现用户操作系统&浏览器信息显示
因为转移域名需要在数据库中批量更改链接地址,所以稍微注意了一下数据库中的表。
发现评论的UserAgent原来就躺的数据库里面的,既然这样那就不要浪费掉,于是把它转换成用户信息显出出来吧~
原理是根据评论者留下的UserAgent字串进行判断找出与之匹配的操作系统和浏览器并输出。
#代码有参照WP插件show-useragent,并非完全原创
以下Code复制到模板的functions.php文件中
function user_agent($ua){ //开始解析操作系统 $os = null; if(preg_match('/Windows 95/i',$ua) || preg_match('/Win95/',$ua)){ $os="Windows 95"; }elseif(preg_match('/Windows NT 5.0/i',$ua) || preg_match('/Windows 2000/i', $ua)){ $os="Windows 2000"; }elseif(preg_match('/Win 9x 4.90/i',$ua) || preg_match('/Windows ME/i', $ua)){ $os="Windows ME"; }elseif(preg_match('/Windows.98/i',$ua) || preg_match('/Win98/i', $ua)){ $os = "Windows 98"; }elseif(preg_match('/Windows NT 6.0/i',$ua)){ $os="Windows Vista"; }elseif(preg_match('/Windows NT 6.1/i',$ua)){ $os="Windows 7"; }elseif(preg_match('/Windows NT 5.1/i',$ua)){ $os = "Windows XP"; }elseif(preg_match('/Windows NT 5.2/i',$ua) && preg_match('/Win64/i',$ua)){ $os="Windows XP 64 bit"; }elseif(preg_match('/Windows NT 5.2/i',$ua)){ $os="Windows Server 2003"; }elseif(preg_match('/Mac_PowerPC/i',$ua)){ $os="Mac OS"; }elseif(preg_match('/Windows Phone/i',$ua)){ $os="windows phone7"; }elseif(preg_match('/Windows NT 4.0/i',$ua) || preg_match('/WinNT4.0/i',$ua)){ $os="Windows NT 4.0"; }elseif(preg_match('/Windows NT/i',$ua) || preg_match('/WinNT/i',$ua)){ $os="Windows NT"; }elseif(preg_match('/Windows CE/i',$ua)){ $os="Windows CE"; }elseif(preg_match('/ipad/i',$ua)){ $os="iPad"; }elseif(preg_match('/Touch/i',$ua)){ $os="Touchw"; }elseif(preg_match('/Symbian/i',$ua) || preg_match('/SymbOS/i',$ua)){ $os="Symbian OS"; }elseif(preg_match('/PalmOS/i',$ua)){ $os="Palm OS"; }elseif(preg_match('/QtEmbedded/i',$ua)){ $os="Qtopia"; }elseif(preg_match('/Ubuntu/i',$ua)){ $os="Ubuntu Linux"; }elseif(preg_match('/Gentoo/i',$ua)){ $os="Gentoo Linux"; }elseif(preg_match('/Fedora/i',$ua)){ $os="Fedora Linux"; }elseif(preg_match('/FreeBSD/i',$ua)){ $os="FreeBSD"; }elseif(preg_match('/NetBSD/i',$ua)){ $os="NetBSD"; }elseif(preg_match('/OpenBSD/i',$ua)){ $os="OpenBSD"; }elseif(preg_match('/SunOS/i',$ua)){ $os="SunOS"; }elseif(preg_match('/Linux/i',$ua)){ $os="Linux"; }elseif(preg_match('/Mac OS X/i',$ua)){ $os="Mac OS X"; }elseif(preg_match('/Macintosh/i',$ua)){ $os="Mac OS"; }elseif(preg_match('/Unix/i',$ua)){ $os="Unix"; }elseif(preg_match('#Nokia([a-zA-Z0-9.]+)#i',$ua,$matches)){ $os="Nokia".$matches[1]; }elseif(preg_match('/Mac OS X/i',$ua)){ $os="Mac OS X"; }else{ $os='未知的操作系统'; } //开始解析浏览器 if(preg_match('#(Camino|Chimera)[ /]([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser = 'Camino '.$matches[2]; }elseif(preg_match('#SE 2([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='搜狗浏览器 2'.$matches[1]; }elseif(preg_match('#360([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='360浏览器 '.$matches[1]; }elseif (preg_match('#Maxthon( |\/)([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Maxthon '.$matches[2]; }elseif (preg_match('#Chrome/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Chrome '.$matches[1]; }elseif (preg_match('#Safari/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Safari '.$matches[1]; }elseif(preg_match('#opera mini#i', $ua)) { preg_match('#Opera/([a-zA-Z0-9.]+)#i', $ua, $matches); $browser='Opera Mini '.$matches[1]; }elseif(preg_match('#Opera.([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Opera '.$matches[1]; }elseif(preg_match('#(j2me|midp)#i', $ua)) { $browser="J2ME/MIDP Browser"; }elseif(preg_match('/GreenBrowser/i', $ua)){ $browser='GreenBrowser'; }elseif (preg_match('#TencentTraveler ([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='腾讯TT浏览器 '.$matches[1]; }elseif(preg_match('#UCWEB([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='UCWEB '.$matches[1]; }elseif(preg_match('#MSIE ([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Internet Explorer '.$matches[1]; }elseif(preg_match('#avantbrowser.com#i',$ua)){ $browser='Avant Browser'; }elseif(preg_match('#PHP#', $ua, $matches)){ $browser='PHP'; }elseif(preg_match('#danger hiptop#i',$ua,$matches)){ $browser='Danger HipTop'; }elseif(preg_match('#Shiira[/]([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Shiira '.$matches[1]; }elseif(preg_match('#Dillo[ /]([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Dillo '.$matches[1]; }elseif(preg_match('#Epiphany/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Epiphany '.$matches[1]; }elseif(preg_match('#UP.Browser/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Openwave UP.Browser '.$matches[1]; }elseif(preg_match('#DoCoMo/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='DoCoMo '.$matches[1]; }elseif(preg_match('#(Firefox|Phoenix|Firebird|BonEcho|GranParadiso|Minefield|Iceweasel)/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Firefox '.$matches[2]; }elseif(preg_match('#(SeaMonkey)/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Mozilla SeaMonkey '.$matches[2]; }elseif(preg_match('#Kazehakase/([a-zA-Z0-9.]+)#i',$ua,$matches)){ $browser='Kazehakase '.$matches[1]; }else{ $browser='未知浏览器'; } return $os." | ".$browser; }
然后在comments.php中的评论的循环中添加以下代码在你想要显示用户信息的地方
<?php echo user_agent($comment->comment_agent); ?>
最后刷新你的博客文章页!
以上几步操作即可实现最简单的评论用户信息显示了,如果想更丰富一些,请下载WP插件show-useragent,以及在搜索引擎上搜索:“wordpress显示UA” 亦或者在以上Code的基础上进行更改。
欢迎大佬支持本博客的发展 -- Donate --
本文链接:wordpress 博客评论无插件实现用户操作系统&浏览器信息显示
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^
分享到: | |
把图标去掉了啊
没有啊,可能有国外内容引用,卡了
这个还显示国旗,厉害!
按照ip来源
貌似很强大啊!
怎么没有解析国家哦?
那个是控制国家的啊?不想国家那个图
你要改图标还是屏蔽掉
还不错啊,哈哈,。。这个方法好。。。:)
360测试
找这个插件找到您这来的,感谢,已经用上了
话说你这滑动解锁老霸气了…赞
哈哈,好用满意就好
对,图标需要单独下
推荐使用show-useragent插件,一步到位
如果是代码,读取图标的函数是什么,博主知道的话告诉下
请使用user_agent插件
图标是插件下文件自带,否则需要自己收集
直接复制
得到效果是只有name,没有图标
测试一下
测试好用不?