wordpress 博客评论无插件实现用户操作系统&浏览器信息显示  

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的基础上进行更改。

 

请订阅本站 RSS feed 订阅到信箱 ,欢迎 Donate 或者 上面的广告内容 支持三十岁

本文链接:wordpress 博客评论无插件实现用户操作系统&浏览器信息显示

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  • 通告关闭
  • 评论 (18)
  1. 把图标去掉了啊

    • 没有啊,可能有国外内容引用,卡了

  2. 这个还显示国旗,厉害!

  3. 貌似很强大啊!

  4. 怎么没有解析国家哦?

  5. 那个是控制国家的啊?不想国家那个图

  6. 还不错啊,哈哈,。。这个方法好。。。:)

  7. 360测试

  8. 找这个插件找到您这来的,感谢,已经用上了

    话说你这滑动解锁老霸气了…赞

  9. 对,图标需要单独下
    推荐使用show-useragent插件,一步到位

    • 如果是代码,读取图标的函数是什么,博主知道的话告诉下

      • 请使用user_agent插件
        图标是插件下文件自带,否则需要自己收集

  10. 直接复制
    得到效果是只有name,没有图标

  11. 测试一下

评论关闭