Ga naar inhoud

Blog

International Bank Account Number (IBAN) Validator

/** * @param string $iban * @return boolean true | false * @see http://nl.wikipedia.org/wiki/International_Bank_Account_Number * @author David van der Tuijn */ public function validateIban($iban) { $controlegetal = null; // 1. valideer de samenstelling if (strlen($iban) > 34) { return false; } // 2. verplaats de eerste 4 karakters naar het einde $controlegetal = substr($iban, 4) . substr($iban, 0, 4); // 3. vervang elke letter door 2 cijfers, waarbij A = 10, B = 11, ..., Z = 35 $find = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; $replace = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36']; $controlegetal = str_replace($find, $replace, $controlegetal); // 4. bereken dan het getal modulo 97 $restwaarde = bcmod($controlegetal, '97'); // 5. als de restwaarde 1 is, dan klopt het nummer op basis van het controlecijfer en kan het IBAN valide zijn if ($restwaarde == 1) { return true; } return false; }
Urls