Затребало ми је да израчунам контролни број по модулу 97, али нигде нисам нашао пример урађен у PHP. Пошто сам написао функцију која то ради, ево је овде, ако још некоме буде требало.
function Modul97 ($pBroj) {
$mBroj = '';
$mFixedBroj = '';
foreach (str_split (strtoupper((string)$pBroj)) as $mChar) {
if (is_numeric ($mChar)) {
$mBroj .= $mChar;
$mFixedBroj .= $mChar;
} else {
if (ctype_alpha($mChar)) {
$mBroj .= $mChar;
$mNumeric = ord ($mChar) - 65 + 10;
$mFixedBroj .= (string)$mNumeric;
} else {
$mBroj .= '-';
}
}
}
$mFixedBroj00 = $mFixedBroj . '00';
$mModule = bcmod ($mFixedBroj00, 97);
$mControl = 98 - $mModule;
$mResult = (string)$mControl . '-' . $mBroj;
return $mResult;
}
Функција као улазни параметар очекује број за који треба израчунат контролни број. Број може бити нумеричка вреност или низ знакова који садржи и слова и знакове интерпункције.
Функција као излаз даје низ хнаков акоји садрже улазни број коме је придодат и контролни број.
Сви знакови у улазном броју који нису слова или бројеви ће бити замењени знаком ‘-‘. Мала слова ће бити претворена у велика.