Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Laskee viitenumerolle tarkisteen
- * @param int|string $viite Viitenumero
- * @return int Suomen pankkien k�ytt�m� viitenumeron tarkiste
- */
- function laskeTarkiste($viite)
- {
- $kertoimet = array(7,3,1);
- $pituus = strlen($viite);
- $viite = str_split($viite);
- $summa = 0;
- for ($i = $pituus - 1; $i >= 0; --$i) {
- $summa += $viite[$i] * $kertoimet[($pituus - 1 - $i) % 3];
- }
- return (10 - $summa % 10) % 10;
- }
- /**
- * Muodostaa Suomalaisen pankkisysteemin mukaisen viitteen
- * @param int $luku jokin j�rjestelm�lle uniikki luku. Ks. kommentit
- * @return string Viitenumero tarkisteineen viiden jaksoihin ryhmiteltyn�.
- */
- function haeViite($luku)
- {
- /* Pyrit��n v�ltt�m��n liian lyhyet viitenumerot. Saattaapi aiheuttaa
- p��llekk�isyyksi� jos j�rjestelm�ss� on jo paljon varattuja viitteit� alueella
- ($luku + 100) * 10, joten p��llekk�isyydentarkistus voi olla aiheellinen
- siin� tapauksessa. Parasta olisi tietysti tuoda funktiolle jokin uniikki luku
- > 100 ja poistaa allaoleva rivi*/
- $luku += 100;
- // Lis�t��n tarkiste ja ryhmitell��n kivasti
- $tulos = '';
- foreach (str_split($luku . laskeTarkiste($luku), 5) as $osa) $tulos .= $osa . ' ';
- return $tulos;
- }
Advertisement
Add Comment
Please, Sign In to add comment