编程技术

PHP获取随机Web颜色

[toc]

前言

今天在做一个功能需求的时候,发现有个地方需要获取随机颜色。

在Web页面中,颜色并不能瞎用,所以采取Web安全颜色

PHP

获取随机安全色:这里使用16进制来表示颜色,例如白色的#FFFFFF,黑色的#000000,Web安全色主要由00,33,66,99,CC,FF组成,因此,总的颜色总数就是6*6=216种,先产出所有可能的情况(216种),放于数组中,然后再生成一个1-216的随机数,最后使用array[random]的形式随机返回一个数组成员,就算成功了。下面贴出代码:

/**
 * 随机生成Web安全色
 * @return mixed|string
 */
function getRandomSafeColor() {
    $base = array('00','33','66','99','CC','FF');//基础色
    $len = count($base);//基础色长度
    $random = mt_rand(1,216);//获取1-216之间的随机数
    $res = '';
    $bg[] = '';
    for($r = 0; $r < $len; $r++){
        for($g = 0; $g < $len; $g++){
            for($b = 0; $b < $len; $b++){
                $bg[] = '#'.$base[$r].$base[$g].$base[$b];
            }
        };
    };
    for($i=0;$i<count($bg);$i++){
        $res =  $bg[$random];
    }
    return $res;
}

JavaSript

对于JS版本去获取一个随机颜色相对简单点:

function getRandomColor() {
    return '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6); 
}

这样就可以获取到一个随机颜色。

如果是Web安全色根据PHP版本得知如下:

function getRandomSafeColor() {
    var base = ['00','33','66','99','CC','FF'];     //基础色代码
    var len = base.length;                          //基础色长度
    var bg = new Array();                           //返回的结果
    var random = Math.ceil(Math.random()*215+1);    //获取1-216之间的随机数
    var res;
    for(var r = 0; r < len; r++){  
        for(var g = 0; g < len; g++){  
            for(var b = 0; b < len; b++){   
                bg.push('#'+base[r].toString()+base[g].toString()+base[b].toString());
            }  
        };  
    };
    for(var i=0;i<bg.length;i++){
        res =  bg[random];
    }
    return res;
}

本站内容遵循知识共享署名-非商业性使用-相同方式共享4.0 国际许可协议

转载原创文章请注明转自:PHP获取随机Web颜色

发表评论

理性发言,共建美好精神家园!