Затребало ми је да израчунам контролни број по модулу 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; }
Функција као улазни параметар очекује број за који треба израчунат контролни број. Број може бити нумеричка вреност или низ знакова који садржи и слова и знакове интерпункције.
Функција као излаз даје низ хнаков акоји садрже улазни број коме је придодат и контролни број.
Сви знакови у улазном броју који нису слова или бројеви ће бити замењени знаком ‘-‘. Мала слова ће бити претворена у велика.