Zatrebalo mi je da izračunam kontrolni broj po modulu 97, ali nigde nisam našao primer urađen u PHP. Pošto sam napisao funkciju koja to radi, evo je ovde, ako još nekome bude trebalo.
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;
}
Funkcija kao ulazni parametar očekuje broj za koji treba izračunat kontrolni broj. Broj može biti numerička vrenost ili niz znakova koji sadrži i slova i znakove interpunkcije.
Funkcija kao izlaz daje niz hnakov akoji sadrže ulazni broj kome je pridodat i kontrolni broj.
Svi znakovi u ulaznom broju koji nisu slova ili brojevi će biti zamenjeni znakom ‘-‘. Mala slova će biti pretvorena u velika.