typecho实时监测访问人数以及监测博主在线例程代码!


食用方法
首先在主题文件里的functions.php里面最下面放入以下代码

//在线人数
function online_users() {
    $filename='online.txt'; //数据文件
    $cookiename='Nanlon_OnLineCount'; //Cookie名称
    $onlinetime=30; //在线有效时间
    $online=file($filename); 
    $nowtime=$_SERVER['REQUEST_TIME']; 
    $nowonline=array(); 
    foreach($online as $line){ 
        $row=explode('|',$line); 
        $sesstime=trim($row[1]); 
        if(($nowtime - $sesstime)<=$onlinetime){
            $nowonline[$row[0]]=$sesstime;
        } 
    } 
    if(isset($_COOKIE[$cookiename])){
        $uid=$_COOKIE[$cookiename]; 
    }else{
        $vid=0;
        do{
            $vid++; 
            $uid='U'.$vid; 
        }while(array_key_exists($uid,$nowonline)); 
        setcookie($cookiename,$uid); 
    } 
    $nowonline[$uid]=$nowtime;
    $total_online=count($nowonline); 
    if($fp=@fopen($filename,'w')){ 
        if(flock($fp,LOCK_EX)){ 
            rewind($fp); 
            foreach($nowonline as $fuid=>$ftime){ 
                $fline=$fuid.'|'.$ftime."\n"; 
                @fputs($fp,$fline); 
            } 
            flock($fp,LOCK_UN); 
            fclose($fp); 
        } 
    } 
    echo "$total_online"; 
} 

然后在想要显示的地方放入以下代码即可,我的是放在页脚文件即footer.php

<?php echo online_users() ?>

在主题文件functions.php(Joe主题放在core/core.php文件)最下面放入以下代码:

//调用博主最近登录时间
function get_last_login($user){
    $user   = '1';
    $now = time();
    $db     = Typecho_Db::get();
    $prefix = $db->getPrefix();
    $row = $db->fetchRow($db->select('activated')->from('table.users')->where('uid = ?', $user));
    echo Typecho_I18n::dateWord($row['activated'], $now);
}

然后在想要显示的位置调用以下代码:

调用语句示例:博主 <?php get_last_login(1); ?> 在线
就这么简单!

附加
再配合typecho实时在线人数统计代码相结合。将下列代码放入需要显示的地方,如本博客放在页脚文件foot.php。

<div class="tooltip">当前有<?php echo online_users() ?>人访问本站<span class="tooltiptext">博主 <?php get_last_login(1); ?> 在线</span></div>

美化
提示内容美化,将下列代码放在主题的CSS文件里(Joe主题放在assets/css/joe.min.css)

.tooltip {
    position: relative;
    display: inline-block;
    margin: 0 0 0 20px;;
}

.tooltip .tooltiptext {
    visibility: hidden;
    width: 100%;
    background-color: black;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px;

    /* 定位 */
    position: absolute;
    z-index: 1;
}

.tooltip:hover .tooltiptext {
    visibility: visible;
}

声明:GhostKylin‘S BLOG|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - typecho实时监测访问人数以及监测博主在线例程代码!


你好!世界!XladminShell箱子仅供个人学习使用务必遵守《网络安全法》