Typecho网站访问统计加及在线访客代码
侧边栏壁纸
  • 累计撰写 30 篇文章
  • 累计收到 13 条评论

Typecho网站访问统计加及在线访客代码

怪怪的科长
2021-04-18 / 0 评论 / 165 阅读 / 正在检测是否收录...

  统计当前在线人数以及访客总数是大多数博主都喜欢使用的,虽然有第三方统计工具(如CNZZ、51La...),但如果不想使用第三方工具统计那么可以试试下面这段代码。

网站访客统计

首先在Typecho主题的functions.php文件中添加以下统计代码。

//总访问量
    function theAllViews()
        {
            $db = Typecho_Db::get();
            $row = $db->fetchAll('SELECT SUM(VIEWS) FROM `typecho_contents`');
                echo number_format($row[0]['SUM(VIEWS)']);
        }

插入调用代码

在需要显示的位置插入调用代码。(如:footer.phpsidebar.php等文件)

访客总人数:<?php echo theAllViews();?>

调用成功后即可看到显示效果。 表情

在线人数统计

<?php
    //首先你要有读写文件的权限,首次访问可能不显示,一般再次刷新即可
    $online_log = "online_data.dat";         //保存在线人数文件online.dat到根目录
    $timeout = 30;        //30秒内无操作判定为掉线
    $entries = file($online_log);
    $temp = array();
    for ($i=0;$i<count($entries);$i++){
        $entry = explode(",",trim($entries[$i]));
        if(($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
            array_push($temp,$entry[0].",".$entry[1]."\n");         //取出其他浏览者的信息,并去掉超时访客,保存进$temp
        }
    }
    array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n");         //更新访客的时间
    $online_data = count($temp);         //计算在线访客
    $entries = implode("",$temp);
    //写入文件
    $fp = fopen($online_log,"w");
    flock($fp,LOCK_EX);         //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
    fputs($fp,$entries);
    flock($fp,LOCK_UN);
    fclose($fp);
    $count= "在线人数:".$online_data."人";
?>

将以上代码放到要显示文件的最顶部,之后再要显示此统计的地方加上此输出。
然后在文件栏建一个online_data.dat的文件用来记录。

插入调用代码

<?php echo $count?>

这段代码不只适用于Type­cho,也适用于Word­Press、em­log、zblog等php博客系统,如果你想显示在底部,可以找到footer.php文件,在相应位置添加调用即可,如果放到别的地方也是同理。

1

评论

博主关闭了所有页面的评论