2025年5月23日 星期五 乙巳(蛇)年 二月廿五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > 万维网络 > 其它源码

Typecho使用PHP代码添加显示实时在线人数

时间:08-12来源:作者:点击数:70

说明

  • 在线人数统计时间可以自行调整,默认的是30秒刷新一次;
  • 统计日志文件位置可以自行指定,默认在网站根目录创建;
  • 代码对于Typecho程序应该是通用的,也适用于目前使用的Handsome主题;

效果

代码

Typechofunctions.php文件中添加以下代码;

Handsome主题的functions.php文件位置在/usr/themes/handsome/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页脚文件;

Handsome主题添加到/usr/themes/handsome/component/sidebar.php文件;

  • # 通用代码
  • <?php echo online_users() ?>
  • # Handsome主题
  • <li class="list-group-item"> <i class="glyphicon glyphicon-user text-muted text-muted"></i> <span class="badge
  • pull-right"><?php echo online_users() ?></span><?php _me("在线人数") ?></li>

示例:

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门