设当前等级为n,达到当前等级最少需要的活跃天数为d,当前活跃天数为dc,升级剩余天数为dr,则:
从而推出:
好了,引述完成,懒得写字了,贴出代码:
复制内容到剪贴板
代码:mimage1 = $pimage1;
$this->mimage2 = $pimage2;
$this->mimage3 = $pimage3;
}
/**
* 根据活跃天数计算用户等级。(模仿qq的升级方式)
* @return int
* @access public
*/
function get_rank($pscore) {
$temp = $pscore+4;
$trank = sqrt($temp)-2;
$trank = floor($trank);
return $trank;
}
/**
* 用户等级标志,根据用户等级显示用户标志
* 仿照qq等级的四进制显示
* @return str
* @access public
*/
function get_score($pscore) {
$str = '';
$trank = $this->get_rank($pscore);//根据分数取得等级
$tpicnum = base_convert($trank,10,4);//转化为四进制
$tpicnum = strrev($tpicnum);//翻转字符串
$tarray = str_split($tpicnum);//转化为数组
$tnum = count($tarray);
if($tnum for($i=$tnum-1;$i>=0;$i--){
switch($i){
case '0':
for($j=0;$j $str .= $this->mimage1;
}
break;
case '1':
for($j=0;$j $str .= $this->mimage2;
}
break;
case '2':
for($j=0;$j $str .= $this->mimage3;
}
break;
default:
//$str = ;
break;
}
}
}else {
$str = $this->mimage3.$this->mimage3.$this->mimage3.$this->mimage3;
}
return $str;
}
}
?>以上就是显示类,再来个简单的调用实例: 复制内容到剪贴板
代码:get_score($tscore);
//输出显示效果
print ''.$echo.'
';
?>