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.