先引述下qq等级的算法:设当前等级为n,达到当前等级最少需要的活跃天数为d,当前活跃天数为dc,升级剩余天数为dr,则:

当前活跃天数为dc,升级剩余天数为dr,则:

从而推出:

代码:

<?php
/**
*
* qq等级输出类库
* @author 毛毛虫 <wangchong1985@gmail.com>
* @version 1.0 2008-04-09

*/
class showrank {
    
    /**
     * 第一级图片显示字段
     */
    public $mimage1;
    
    /**
     * 第二级图片显示字段
     */
    public $mimage2;
    
    /**
     * 第三级图片显示字段
     */
    public $mimage3;
    /**
     * 构造函数:传入图片值
     * @return 无
     */
    function __construct($pimage1 = '★',$pimage2 = '▲',$pimage3 = '●') {
        $this->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<=3) {
            for($i=$tnum-1;$i>=0;$i--){
                switch($i){
                    case '0':
                        for($j=0;$j<$tarray[$i];$j++){
                            $str .= $this->mimage1;
                        }
                    break;
                    case '1':
                        for($j=0;$j<$tarray[$i];$j++){
                            $str .= $this->mimage2;
                        }
                    break;
                    case '2':
                        for($j=0;$j<$tarray[$i];$j++){
                            $str .= $this->mimage3;
                        }
                    break;
                    default:
                        //$str = ;
                    break;
                }
            }
        }else {
            $str =     $this->mimage3.$this->mimage3.$this->mimage3.$this->mimage3;
        }
        return $str;
    }
}
?>

以上就是显示类,再来个简单的调用实例:

复制内容到剪贴板

代码:

<?php
require_once('showrank.php');
//定义等级图片
$timage1 = '<img src="data:images/time_star.gif">';
$timage2 = '<img src="data:images/time_yueliang.gif">';
$timage3 = '<img src="data:images/time_sun.gif">';
//实例化并传输等级图片
$tshow = new showrank($timage1,$timage2,$timage3);
//输入的活跃天数
$tscore = 1009;
$echo = $tshow->get_score($tscore);
//输出显示效果
print '<div align=center>'.$echo.'</div>';
?>

php仿QQ等级太阳显示函数相关推荐

  1. PHP获取QQ等级,php仿QQ等级太阳显示函数

    开头先引述下QQ等级的算法: 设当前等级为N,达到当前等级最少需要的活跃天数为D,当前活跃天数为Dc,升级剩余天数为Dr,则: 从而推出: 好了,引述完成,懒得写字了,贴出代码: 复制内容到剪贴板 代 ...

  2. iOS仿QQ空间时间显示

    最近项目有类似QQ空间展示动态的UI,模仿了QQ空间的时间显示,在此记录,以备查阅. 这是QQ空间的ui: 时间显示为: 1.今天-->今天 xx:xx(今天 15:39)   2.昨天--&g ...

  3. 仿QQ空间标题栏显示隐藏

    在QQ空间中我们经常会看到一种效果:标题栏或者状态栏在下拉或者上拉时的"渐变显示隐藏功能" ,今天我们就看看他是怎么实现的. 先看下效果图: 一:那么我们就先来说下"带B ...

  4. 仿QQ打开网址显示的当前网页非官方页面

    简介: 使用:建个html文件把下面代码复制进去,访问你建的html文件后面加? url=网址. 网盘下载地址: http://kekewl.net/jy9Gcbdv1Gu0 图片:

  5. Android 仿QQ个性标签显示

    /*** TagView 标签墙* @author wsm*/ class TagView @JvmOverloads constructor(context: Context, attrs: Att ...

  6. android人脸识显示头像自定义,Android 仿QQ头像自定义截取功能

    看了Android版QQ的自定义头像功能,决定自己实现,随便熟悉下android绘制和图片处理这一块的知识. 先看看效果: 思路分析: 这个效果可以用两个View来完成,上层View是一个遮盖物,绘制 ...

  7. 超简单仿QQ步数显示控件

    本着写文即学习的态度,记录下自定义一款超简单仿QQ步数加载控件,话不多数先看图. 一,特性: 1,外圈大圆.进度圆和数字显示的颜色均可以自定义 2,设置最大值和当前值 3,设置加载持续时间 二,实现: ...

  8. android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...

    Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...

  9. 循序渐进实现仿QQ界面(三):界面调色与控件自绘

    本篇讲述如何进行界面调色.界面调色一般有两种方法,调色板和HSL色彩变换.调色板局限于256色,这里不采用,因此用HSL色彩变换实现.首先要了解一下什么是HSL色彩空间,完整且详尽的知识请到维基百科去 ...

最新文章

  1. Linux yum 命令
  2. 3月12日云栖精选夜读 | 安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案...
  3. http头部content-type与数据格式
  4. mysql的groupby原理是啥_mysql数据库groupby报错原理是什么?
  5. 条件控制(if ) ( case)
  6. vuex 管理vue-router的传值
  7. Linux Vim显示行号方法详解
  8. 离线抓取域登录缓存hash(mscash)
  9. Java基础 IO流——第三部分
  10. Java下载安装详细教程(超详细版)
  11. 电信系统服务器地址,中国电信专线dns服务器地址!DNS
  12. Excel2013 单元格锁定
  13. PHP Screw php代码解密,运用php screw进行源代码加密
  14. flex: 1到底是什么意思?
  15. java中如何添加画板背景图,几何画板中如何添加背景图片
  16. x=rn(n)傅里叶变换matlab,第三章 离散傅立叶变换
  17. 霸屏综艺,牵手明星,扩列神器皮皮APP的出圈始末
  18. ImportError:attempted relative import with no known parent package
  19. 第八十四章 Caché 函数大全 $ZDATEH 函数
  20. python 累加器_python中的累加器

热门文章

  1. 用python对股票进行可视化分析_使用Python对股票进行可视化分析
  2. 第十诫:在规则中理解精意
  3. 说说靠自学成功入行java的难度
  4. ArcGIS坐标系转换出错:Error 999999执行函数出错 invalid extent for output coordinate system...
  5. 在哪里能看到计算机缓存大小,win10系统查看电脑硬盘缓存大小的办法
  6. Spark3-AQE-数据倾斜Join优化
  7. implode(): Invalid arguments passed
  8. 大数据应用:双十一,阿里京东该如何利用大数据寻找突破?
  9. 淘宝爆款返场什么意思?淘宝爆款返场怎么报名?
  10. 全球及中国麦克风电源行业市场发展趋势与投资战略规划研究报告2022-2028年