`
erntoo
  • 浏览: 30695 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
  • erntoo: 修改somaxconn该内核参数默认值一般是128,对于负载很 ...
    rpm

PHP算法-生成序列号

    博客分类:
  • PHP
阅读更多
/**
 * 根据当前无重复的$codes,补充生成长度为$length,总数为$amount的
 *
 * @param int $length
 *            长度
 * @param int $amount
 *            需要总数
 * @param string $prefix
 *            前缀
 * @param array $codes
 *            初始codes
 * @return array $codes 无重复的codes,含输入参数
 */
myrand($length, $amount = 1, $prefix = '', $codes = []) {
    $seed = [ '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
    $codes_tmp = [];
    $need = $amount - count($codes);
    for ($c = 0; $c < $need; $c++) {
        $code = '';
        for ($i = 0; $i < $length; $i++) {
            $index = rand(0, 31);
            $code .= $seed[$index];
        }
        $codes_tmp[] = $prefix . $code;
    }
    $codes = array_unique(array_merge($codes, $codes_tmp));
    unset($codes_tmp);
    $number = count($codes);
    $d = $amount - $number;
    if ($d > 0) {
        $codes = array_unique(array_merge($codes, myrand($length, $amount, $prefix, $codes)));
    }
    return $codes;
}

 

分享到:
评论

相关推荐

    数据库序列号生成器

    1. **序列号生成算法**:生成序列号的算法可以是简单的自增、随机数生成、时间戳加盐(确保时间相关的唯一性)或者是更复杂的分布式ID生成算法,如Twitter的Snowflake算法,它考虑了多节点环境下的分布式一致性。...

    myEclipse序列号

    官方提供的序列号是经过验证的,但有时用户可能需要自动生成序列号进行测试或学习目的。这通常涉及到软件许可的灰色地带,因此应谨慎对待非官方序列号的生成。 描述中提到的“自动序列号生成”可能指的是利用编程...

    php-snowflake.tar.gz 随机生成ID,一直安装用的tar包

    Snowflake算法是一种分布式ID生成策略,最初由Twitter开源,它能生成具有时间戳、工作节点ID和序列号的64位无符号整数ID,确保ID的全局唯一性。 在描述中,我们看到一系列编译和安装PHP扩展的步骤,这通常适用于...

    PHP生成唯一ID之SnowFlake算法

    算法通过拼接时间戳、机器ID和序列号来生成唯一ID。每次生成ID时,首先计算当前时间戳,并与epoch时间戳做差值计算,然后将结果与机器ID和序列号结合生成64位的ID。 时间戳部分保证了ID随时间的递增,机器ID保证了...

    php-snowflake::snowflake:基于Snowflake算法PHP ID生成器(Twitter已宣布)

    一个基于Snowflake算法PHP ID生成器(Twitter已宣布)。描述雪花算法PHP实现。 Snowflake是一项网络服务,可通过一些简单的保证大规模生成唯一的... 因此,如果要使用雪花算法生成唯一ID,则必须确保:在同一节点的同一

    Delphi(delphi7-XE)标准RSA加密,解密,签名.与C,Java,php等通用

    RSA算法是一种非对称加密技术,它在信息安全领域有着广泛的应用,特别是在数据加密、数字签名以及安全通信等方面。本篇文章将深入探讨Delphi (从delphi7到XE版本)中的RSA实现,以及如何与其他编程语言如C、Java、PHP...

    dedid全局唯一 ID(主键)生成器

    Snowflake算法是一种基于时间戳、工作节点ID和序列号的分布式ID生成方案,确保在分布式环境中产生的ID具有全局唯一性、时间有序性和无冲突性。 然而,与Snowflake不同的是,dedid生成器的最后12位允许使用不仅仅是...

    donkeyid, php扩展,64位自增id生成器.zip

    1. **分布式一致性**:`donkeyid`可能采用了类似于Twitter的Snowflake算法,将64位ID分为多个部分,如时间戳、工作节点标识和序列号,确保在分布式环境中全局唯一。 2. **时间戳**:前几位用于存储当前时间戳,这样...

    PHP实现生成唯一编号(36进制的不重复编号)

    最后,2位校验码是通过特定算法生成的,用于验证编号的正确性和完整性。 Code类包含两个关键方法: 1. `encodeID($int, $format)`:此方法接受一个10进制整数`$int`和一个格式化参数`$format`,表示所需的编号位数...

    zend7.1注册码

    - **组成结构**:`3727234F6095F72034F6095F`这个序列号由数字和大写字母组成,按照一定的算法生成。 - **验证过程**:当用户在安装过程中输入此序列号后,软件会对其进行校验。如果匹配成功,则完成激活;反之,则...

    php-luhn-summarize:p 的实现。 PHP中的luhn摘要算法

    Luhn 算法不仅适用于信用卡号验证,还可以用于自定义序列号的生成和验证,例如软件激活码、会员卡号等。在实际项目中,可以结合其他安全措施,如数据库查询、加密存储等,进一步提高数据安全性。 在提供的压缩包 ...

    Laravel开发-laravel-snowflake .zip

    laravel-snowflake就是Laravel对这个算法的实现,它能够生成类似于Twitter Snowflake的64位ID,这些ID由时间戳、工作节点ID和序列号三部分组成,确保了全局唯一性。 1. **雪花算法(Snowflake)详解** - **时间戳*...

    Laravel开发-laravel-snowflake

    - 序列号:12位,每个工作节点在同一毫秒内可以生成 4096 个唯一的 ID。 这样的设计使得 Snowflake ID 具有时间有序性,同时避免了冲突。 **2. 安装与配置 `laravel-snowflake`** 要在 Laravel 项目中使用 `...

    PHP内置函数生成随机数实例

    mt_rand()函数与rand()函数类似,但是它使用Mersenne Twister算法来生成随机数,这使得mt_rand()生成随机数的速度更快,而且质量更高。mt_rand()函数也有无参数和两个参数两种形式,其参数的意义与rand()函数相同,...

    PHP随机数 C扩展随机数

    在上述C扩展的示例`get_random__num_str`函数中,可以看到它使用了类似Twitter雪花算法的策略,结合了时间戳、数据中心ID、工作节点ID和序列号来生成唯一ID。这个ID可以作为`srand()`的种子,从而确保每个请求生成的...

    PHP实现Snowflake生成分布式唯一ID的方法示例

    Snowflake算法生成的ID由64位组成,分为四个部分: 1. **符号位(1位)**: 最高位,始终为0,表示ID是正数。 2. **时间戳(41位)**: 记录生成ID时的毫秒级时间戳,从一个固定的起始时间(如2015年)开始计算,允许...

    3种php生成唯一id的方法

    在PHP中实现SnowFlake算法,可以通过分配节点ID和序列号,结合当前时间戳,生成全局唯一的64位ID。这种算法在大规模分布式系统中表现出色,因为它确保了在不同机器上生成的ID不会冲突。 总结来说,PHP生成唯一ID的...

    PHP实例开发源码—PHP优惠卡发卡平台源码.zip

    而"132678118406865662"这个名字看起来像是某种随机生成的ID或者序列号,可能代表了优惠卡编号或者是系统内部的某个记录ID。在源码中,我们可能会看到如何生成这种唯一标识符的代码,以及它们如何与用户信息、卡的...

    Laravel开发-laraflake

    Snowflake算法生成的ID由三部分组成:时间戳、工作节点ID和序列号。时间戳确保ID具有时间顺序性,工作节点ID可以区分不同节点产生的ID,序列号则用于在同一毫秒内生成多个ID,避免同一节点在同一毫秒内的冲突。64位...

    基于PHP的点卡销卡源码.zip

    2. **点卡生成**:通过随机算法生成唯一的点卡序列号,每个序列号对应一定的价值。 3. **数据库操作**:与数据库交互,存储点卡信息,包括序列号、面值、状态(未售出、已售出、已使用等)。 4. **点卡销售**:提供...

Global site tag (gtag.js) - Google Analytics