首页 » 建站手册 » Typecho纯代码显示评论者的系统信息及浏览器UA标识

Typecho纯代码显示评论者的系统信息及浏览器UA标识

谷歌已收录,更新于2018年12月27日; 如遇到问题,请留言及时通知站长; 欢迎加入 三生三世,讨论各种问题!

说明

之前买了qqdie主题,用了一阵不太习惯,就找了个简洁主题Single。由于太简洁,就得添加各种功能,比如字体更好、简易边栏、评论部分、动态背景、首页各种特效、阴影、浮动、预加载,总之添加了很多地方。前几天有人让分享下评论显示用户UA的代码,当然很早之前就得到了qqdie的许可。今天抽个时间把这个显示系统信息及浏览器UA的代码发出来,废话到此为止!

function.php

打开你Typecho主题目录下的function.php文件,在第二行下或者最后一行插入如下代码。代码一共两个函数,第一段函数用于显示浏览器信息,第二段代码用于获取操作系统信息。当然,函数输出部分,站长都给加上了字体图标,如果你的主题不支持字体图标或者跟站长用的图标不一样,请自行替换,删除或者修改代码中所有i标签。

/** 获取浏览器信息 */
function getBrowser($agent)
{ $outputer = false;
    if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs)) {
        $outputer = 'IE浏览器';
    } else if (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs)) {
      $str1 = explode('Firefox/', $regs[0]);
$FireFox_vern = explode('.', $str1[1]);
        $outputer = '火狐浏览器 '. $FireFox_vern[0];
    } else if (preg_match('/Maxthon([\d]*)\/([^\s]+)/i', $agent, $regs)) {
      $str1 = explode('Maxthon/', $agent);
$Maxthon_vern = explode('.', $str1[1]);
        $outputer = '傲游浏览器 '.$Maxthon_vern[0];
    } else if (preg_match('#SE 2([a-zA-Z0-9.]+)#i', $agent, $regs)) {
        $outputer = '搜狗浏览器';
    } else if (preg_match('#360([a-zA-Z0-9.]+)#i', $agent, $regs)) {
$outputer = '360浏览器';
    } else if (preg_match('/Edge([\d]*)\/([^\s]+)/i', $agent, $regs)) {
        $str1 = explode('Edge/', $regs[0]);
$Edge_vern = explode('.', $str1[1]);
        $outputer = 'Edge '.$Edge_vern[0];
    } else if (preg_match('/EdgiOS([\d]*)\/([^\s]+)/i', $agent, $regs)) {
        $str1 = explode('EdgiOS/', $regs[0]);
        $outputer = 'Edge';
    } else if (preg_match('/UC/i', $agent)) {
              $str1 = explode('rowser/',  $agent);
$UCBrowser_vern = explode('.', $str1[1]);
        $outputer = 'UC浏览器 '.$UCBrowser_vern[0];
    }else if (preg_match('/OPR/i', $agent)) {
              $str1 = explode('OPR/',  $agent);
$opr_vern = explode('.', $str1[1]);
        $outputer = '欧朋浏览器 '.$opr_vern[0];
    } else if (preg_match('/MicroMesseng/i', $agent, $regs)) {
        $outputer = '微信内嵌浏览器';
    }  else if (preg_match('/WeiBo/i', $agent, $regs)) {
        $outputer = '微博内嵌浏览器';
    }  else if (preg_match('/QQ/i', $agent, $regs)||preg_match('/QQBrowser\/([^\s]+)/i', $agent, $regs)) {
                  $str1 = explode('rowser/',  $agent);
$QQ_vern = explode('.', $str1[1]);
        $outputer = 'QQ浏览器 '.$QQ_vern[0];
    } else if (preg_match('/MQBHD/i', $agent, $regs)) {
                  $str1 = explode('MQBHD/',  $agent);
$QQ_vern = explode('.', $str1[1]);
        $outputer = 'QQ浏览器 '.$QQ_vern[0];
    } else if (preg_match('/BIDU/i', $agent, $regs)) {
        $outputer = '百度浏览器';
    } else if (preg_match('/LBBROWSER/i', $agent, $regs)) {
        $outputer = '猎豹浏览器';
    } else if (preg_match('/TheWorld/i', $agent, $regs)) {
        $outputer = '世界之窗浏览器';
    } else if (preg_match('/XiaoMi/i', $agent, $regs)) {
        $outputer = '小米浏览器';
    } else if (preg_match('/UBrowser/i', $agent, $regs)) {
              $str1 = explode('rowser/',  $agent);
$UCBrowser_vern = explode('.', $str1[1]);
        $outputer = 'UC浏览器 '.$UCBrowser_vern[0];
    } else if (preg_match('/mailapp/i', $agent, $regs)) {
        $outputer = 'email内嵌浏览器';
    } else if (preg_match('/2345Explorer/i', $agent, $regs)) {
        $outputer = '2345浏览器';
    } else if (preg_match('/Sleipnir/i', $agent, $regs)) {
        $outputer = '神马浏览器';
    } else if (preg_match('/YaBrowser/i', $agent, $regs)) {
        $outputer = 'Yandex浏览器';
    }  else if (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs)) {
        $outputer = 'Opera浏览器';
    } else if (preg_match('/MZBrowser/i', $agent, $regs)) {
        $outputer = '魅族浏览器';
    } else if (preg_match('/VivoBrowser/i', $agent, $regs)) {
        $outputer = 'vivo浏览器';
    } else if (preg_match('/Quark/i', $agent, $regs)) {
        $outputer = '夸克浏览器';
    } else if (preg_match('/mixia/i', $agent, $regs)) {
        $outputer = '米侠浏览器';
    }else if (preg_match('/fusion/i', $agent, $regs)) {
        $outputer = '客户端';
    } else if (preg_match('/CoolMarket/i', $agent, $regs)) {
        $outputer = '基安内置浏览器';
    } else if (preg_match('/Thunder/i', $agent, $regs)) {
        $outputer = '迅雷内置浏览器';
    } else if (preg_match('/Chrome([\d]*)\/([^\s]+)/i', $agent, $regs)) {
$str1 = explode('Chrome/', $agent);
$chrome_vern = explode('.', $str1[1]);
        $outputer = '<i class="fa fa-chrome"></i> Chrome '.$chrome_vern[0];
    } else if (preg_match('/safari\/([^\s]+)/i', $agent, $regs)) {
         $str1 = explode('Version/',  $agent);
$safari_vern = explode('.', $str1[1]);
        $outputer = 'Safari '.$safari_vern[0];
    } else{
        return false;
    }
   return $outputer;
}

/** 获取操作系统信息 */
function getOs($agent)
{
    $os = false;
 
    if (preg_match('/win/i', $agent)) {
        if (preg_match('/nt 6.0/i', $agent)) {
            $os = '<i class="fa fa-windows"></i> Windows Vista';
        } else if (preg_match('/nt 6.1/i', $agent)) {
            $os = '<i class="fa fa-windows"></i> Windows 7';
        } else if (preg_match('/nt 6.2/i', $agent)) {
            $os = '<i class="fa fa-windows"></i> Windows 8';
        } else if(preg_match('/nt 6.3/i', $agent)) {
            $os = '<i class="fa fa-windows"></i> Windows 8.1';
        } else if(preg_match('/nt 5.1/i', $agent)) {
            $os = '<i class="fa fa-windows"></i> Windows XP';
        } else if (preg_match('/nt 10.0/i', $agent)) {
            $os = '<i class="fa fa-windows"></i> Windows 10';
        } else{
            $os = '<i class="fa fa-windows"></i> Windows';
        }
    } else if (preg_match('/android/i', $agent)) {
if (preg_match('/android 9/i', $agent)) {
        $os = '<i class="fa fa-android"></i> Android P';
    }
else if (preg_match('/android 8/i', $agent)) {
        $os = '<i class="fa fa-android"></i> Android O';
    }
else if (preg_match('/android 7/i', $agent)) {
        $os = '<i class="fa fa-android"></i> Android N';
    }
else if (preg_match('/android 6/i', $agent)) {
        $os = '<i class="fa fa-android"></i> Android M';
    }
else if (preg_match('/android 5/i', $agent)) {
        $os = '<i class="fa fa-android"></i> Android L';
    }
else{
        $os = '<i class="fa fa-android"></i> Android';
}
    }
 else if (preg_match('/ubuntu/i', $agent)) {
        $os = '<i class="fa fa-linux"></i> Linux';
    } else if (preg_match('/linux/i', $agent)) {
        $os = '<i class="fa fa-linux"></i> Linux';
    } else if (preg_match('/iPhone/i', $agent)) {
        $os = '<i class="fa fa-apple"></i> iPhone';
    } else if (preg_match('/iPad/i', $agent)) {
        $os = '<i class="fa fa-apple"></i> iPad';
    } else if (preg_match('/mac/i', $agent)) {
        $os = '<i class="fa fa-OSX"></i> OSX';
    }else if (preg_match('/cros/i', $agent)) {
        $os = 'chrome os';
    }else {
 return false;
    }
   return $os;
}

comments.php

打开主题目录下的comments.php文件,该文件为主题的评论文件。在适当为止插入如下代码,其中,$color算一个变量,需要单独指定,一般会根据评论者邮箱获取一个md5值,然后再计算出一个颜色代码。具体变量命名方法下面将给出。

<span class="agent" style="background: <?php echo $color; ?>;box-shadow: 0 0 8px <?php echo $color; ?>;"><?php echo getOs($comments->agent); ?></span>
<span class="agent" style="background: <?php echo $color; ?>;box-shadow: 0 0 8px <?php echo $color; ?>;"><?php echo getBrowser($comments->agent); ?></span>

$color变量命名

以下代码也插入到comments.php中,可以找主题中其他变量命名的地方,直接插入即可!

$hash = md5(strtolower($comments->mail));
$color = '#'.substr($hash,1,6);

Typecho纯代码显示评论者的系统信息及浏览器UA标识

CSS代码

以下CSS请插入主题自定css文件处或者其他可以写css的地方!

.agent {
    display: inline-block;
    margin-left: 5px;
    padding: 0 3px;
    border-radius: 2px;
    color: #fff;
    font-size: 12px;
    opacity: .8
}

一个只会魔改主题,而不会制作主题的站长,专业扒各种网站的各种样式。希望每一位来到这里的访客,都能拿到你们需要的资源!

发表评论

已有 29 条评论

  1. ixaxroqubiw ixaxroqubiw说道:

    [url=http://mewkid.net/where-is-xena/]Amoxicillin 500mg[/url] Amoxicillin Online ova.oqok.black1ce.com.ghg.nk http://mewkid.net/where-is-xena/

  2. ouqotoquuy ouqotoquuy说道:

    [url=http://mewkid.net/where-is-xena/]Amoxicillin Online[/url] Amoxicillin ths.nvyz.black1ce.com.ktn.wx http://mewkid.net/where-is-xena/

  3. 心灵博客 心灵博客说道:

    不得不说这些图标很漂亮哦,还有右下角的小地球,很棒的功能。

  4. 小白 小白说道:

    果然和我用的一样数字验证不刷新,输入一次,下次刷评论的话,就可以一直刷了!

    1. 枂下 枂下说道:

      pjax的问题

  5. weich weich说道:

    测试一下数字验证是不是会刷新

  6. Jdeal Jdeal说道:

    大佬,有您现在网站的UA教程或者代码吗,有偿使用额,就是评论时间后面的三个小图标,鼠标放上去后会显示操作系统、浏览器和地址额,求大佬帮忙

    1. 枂下 枂下说道:

      抱歉,目前还没写教程呢

  7. 洛小依 洛小依说道:

    现在你这个用的是阿里云的图标?

    1. 枂下 枂下说道:

      不是,还是awe图标。这几天刚换主题,啥都重来

      1. 洛小依 洛小依说道:

        那加油吧,我看看在你基础在改改

        1. 枂下 枂下说道:

          嗯嗯

  8. 洛小依 洛小依说道:

    看看 ,路过

    1. 枂下 枂下说道:

      这又是哪位大佬,欢迎欢迎

      1. 洛小依 洛小依说道:

        我可不是什么大佬,我只是想知道,为啥我这边QQ浏览器没有显示图标,我看你写的意思大概是除了苹果的浏览器外,其余的都显示谷歌浏览器才对,但我就不显示,所以想请教下你

        1. 枂下 枂下说道:

          刚换了主题,这个地方的判断还没写呢。过几天修复下,最近在适配主题

          1. 枂下 枂下说道:

            嗯嗯,以前主题。我直接找了个q字母图标,后来换了阿里云图标。文章就没更新了

          2. 洛小依 洛小依说道:

            因为你所用的矢量图标没有QQ浏览器,我刚才去查过

          3. 枂下 枂下说道:

            哦,对,文章中的qq浏览器部分没添加图标

          4. 枂下 枂下说道:

            你说这篇文章的代码吗,这个没问题,只是这个主题的判断我还没改呢。文章中的代码没问题::(滑稽)

          5. 洛小依 洛小依说道:

            我就说么,所以说,我应该没读错你的代码。。

  9. 逝雪蓝冰 逝雪蓝冰说道:

    很炫酷,厉害啦!果然不愧为最擅长主题魔改。

    1. 枂下 枂下说道:

      wp相关教程比较多,所以可以从wp转移修改到typecho

  10. 慕叶思晨 慕叶思晨说道:

    打卡

    1. 枂下 枂下说道:

      恭喜打卡成功

最近动态查看

    利用短代码实现了文章正文任意位置插入[googleads],前端自动变为谷歌广告。这样,文章过长时,可以随意插入广告了。
返回主页看更多
赏杯咖啡给站长 支付宝 扫一扫