【问题标题】:How to generate 5 digit alphanumeric unique ID using codeigniter?如何使用 codeigniter 生成 5 位字母数字唯一 ID?
【发布时间】:2010-12-24 16:14:35
【问题描述】:

我有一个项目,我需要为用户生成一个唯一的 5 位字母数字 ID。如何使用 codeigniter 实现这一目标!?

谢谢

【问题讨论】:

标签: php codeigniter unique


【解决方案1】:

在字符串助手中有一个函数叫做random_string。

$this->load->helper('string');
echo random_string('alnum',5);

Details

【讨论】:

  • @navruzm,您需要检查循环中的 uniqueness 并重新生成,或者它只是一个常规的随机字符串..
【解决方案2】:

你可以试试uniqid()

【讨论】:

    【解决方案3】:

    既然您需要一个唯一的 id,那么您应该使用来自用户记录(例如索引)的唯一数据,或者只生成一个随机数据并直接检查它在数据库中的出现。

    这里有两种方法:

    1. random strings
    2. Unique IDs

    【讨论】:

    【解决方案4】:

    使用base_convert($id, 10, 36);将用户的数字ID(我假设您已经拥有)转换为base-36

    【讨论】:

      【解决方案5】:

      下面的代码必须写在共享点列表的计算字段下,以在增量模型中动态生成组合字母数字项目ID。

      =field1&"-"&LEFT("00000",5-(LEN(TEXT([field2],"0"))))&TEXT([field2],"0")
      

      filed1=包含前缀 alpha 值,即 (xyz,abc)

      field2=包含 field1 范围的起始值,即 (1,10,20)

      输出:xyz-00001,abc-00010..

      【讨论】:

        【解决方案6】:

        我强烈建议您使用UUID for such purposes,因为您的项目肯定会变得更加严肃。

        例如,下面是我们在项目 UID 生成中的做法:

        <?php 
        // ...
        public function getUid($uid = null)
        {
            while (! $this->isValid($uid)) {
                $uid = sprintf('%04x%04x%02x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xff));
            }
            return $uid;
        }
        

        或找到另一个线程,more complicated algorithms of generating UUID v4

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-29
          • 2021-01-12
          • 2011-08-20
          相关资源
          最近更新 更多