欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

生成短域名使用的

程序员文章站 2022-04-15 21:34:47
...
跳至
public function createRandCode($string) {
        $code = '';
        $hex_code = '1qaz2wsx3edc4rfv5t-gb6yhn7ujm8ik9ol0p_';
        $now = microtime(true) * 10000;
        $strlen = strlen($hex_code);

        $hash_code = hash('sha256', $string);

        // 这里会为编码定义一个随机的长度,长度取决于step
        $step = rand(8, 16);
        $count = ceil(strlen($hash_code) / $step);

        for($i = 0; $i < $count; $i++) {
            $start = $i * $step;
            $hex_num = substr($hash_code, $start, $step);
            $num = 0x3fffffff & (1 * '0x' . $hex_num);
            $n = $num % $strlen;
            $code .= $hex_code[$n];
        }

        return $code;
    }