[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Генерация номера для сертификата
Quieteroks
Здравствуйте.

Встал вопрос генерации сертификата, но если сам сертификат я смог собрать в tcpdf, то его номер пока не совсем отладил...

Что удобно, так это сертификат будет писаться в базу и выдавать свой номер строки, который в последствии нужно оформить в номер сертификата.

Формат планируется такой:
AAAA-ХХХХ-00000
AAAA - это рандомные буквы.
ХХХХ - это буквенная интерпретация остатка от идентификатора...
00000 - это непосредственно целая часть от идентификатора.

В общем пример такой:
1 идентификатор будет сертификат: ADYG-AAAA-00001
200011 примерно BDHJ-AAAB-00011

Я уже пробовал что то такое ранее реализовать, но не до конца уверен в его правильности.

// Получение двух частей
$uid = 299745;
$dimnsn = 100000;
$letters = floor($uid / $dimnsn);
$numeric = $uid % $dimnsn;
$uid = '';
// Алфавит
$letAr = array(
'A','B','C','D','E','F','G',
'H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U',
'V','W','X','Y','Z',
);

// Получение кода
for($i=0; $i<4; $i++) {
$num = $letters%26;
$uid .= $letAr[$num];
$letters = floor($letters/26);
if($letters < 1) break;
}
$uid = strrev($uid);
// Возвращаем результат
return sprintf("%'A4s-%05d", $uid, $numeric);


К этому коду я смогу добавить без проблем 4 произвольных буквы.
Но совершенно не уверен в правильности остального подхода...

Посоветуйте, что тут не так и как исправить...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.