Typecho博客添加访客统计,在线人数,加载耗时
适用于各种主题的Typecho博客添加访客统计,在线人数,加载耗时,效果请查看本站底部!
访客统计
首先将以下代码放入到主题目录/core/function.php中
function theAllViews()
{
$db = Typecho_Db::get();
$row = $db->fetchAll('SELECT SUM(VIEWS) FROM `typecho_contents`');
echo '访客总数:',number_format($row[0]['SUM(VIEWS)']);
}
然后再将以下挂载点代码放到要显示的位置的PHP文件中,通常是主题目录/footer.php
<?php echo theAllViews();?>
真实IP: 网站在配置了CDN进行加速后一般都无法获取访客真实IP,只能获取访问时使用的CDN节点IP。
将以下代码添加到网站根目录下/config.inc.php中
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
在线人数
同理将以下代码放入到主题目录/core/function.php中
/在线人数
function online_users() {
$filename='online.txt';
$cookiename='Nanlon_OnLineCount';
$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";
}
同理再将以下挂载点代码放到要显示的位置的PHP文件中,通常是主题目录/footer.php
<?php echo online_users() ?>
加载耗时
同理将以下代码放入到主题目录/core/function.php中
function timer_start() {
global $timestart;
$mtime = explode( ' ', microtime() );
$timestart = $mtime[1] + $mtime[0];
return true;
}
timer_start();
function timer_stop( $display = 0, $precision = 3 ) {
global $timestart, $timeend;
$mtime = explode( ' ', microtime() );
$timeend = $mtime[1] + $mtime[0];
$timetotal = number_format( $timeend - $timestart, $precision );
$r = $timetotal < 1 ? $timetotal * 1000 . " ms" : $timetotal . " s";
if ( $display ) {
echo "加载耗时:$r";
}
return "加载耗时:$r";
}
同理再将以下挂载点代码放到要显示的位置的PHP文件中,通常是主题目录/footer.php
<?php echo timer_stop();?>
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。