Встал вопрос генерации сертификата, но если сам сертификат я смог собрать в 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 произвольных буквы.
Но совершенно не уверен в правильности остального подхода...
Посоветуйте, что тут не так и как исправить...