Как создать 5-значный буквенно-цифровой уникальный идентификатор, используя codeigniter? - PullRequest
4 голосов
/ 24 декабря 2010

У меня есть проект, в котором мне нужно сгенерировать уникальный 5-значный буквенно-цифровой идентификатор пользователя.Как я могу добиться этого с помощью codeigniter !?

спасибо

Ответы [ 6 ]

10 голосов
/ 24 декабря 2010

Для этого есть вспомогательный параметр string, называемый random_string.

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

Подробности

3 голосов
/ 30 августа 2011

Вы можете попробовать использовать uniqid ()

1 голос
/ 24 декабря 2010

Поскольку вам нужен уникальный идентификатор, вам следует использовать уникальные данные из пользовательской записи (например, индекс) или просто сгенерировать случайные данные и непосредственно проверить их появление в БД.

Вот два подхода:

  1. случайные строки
  2. Уникальные идентификаторы
0 голосов
/ 04 марта 2016

Я бы настоятельно рекомендовал использовать UUID для таких целей , поскольку ваш проект определенно перерастет во что-то более серьезное.

Например, вот как мы создаем 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;
}

или найдите другой поток с более сложными алгоритмами генерации UUID v4

0 голосов
/ 04 марта 2016

Следующий фрагмент кода должен быть записан в поле вычисления в списке sharepoint, чтобы динамически генерировать комбинацию буквенно-цифрового идентификатора элемента в пошаговой модели.

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

filed1 = содержит префикс альфа-значения, т.е. (xyz, abc)

field2 = содержит начальное значение диапазона field1, т.е. (1,10,20)

вывод: xyz-00001, abc-00010 ..

0 голосов
/ 24 декабря 2010

Преобразуйте числовой идентификатор пользователя (который, я полагаю, у вас уже есть) в base-36, используя base_convert($id, 10, 36);

...