Walidacja numeru IBAN
Z PHPEdia.pl
Walidacja numeru IBAN
Porady: Jak przeprowadzić walidację poprawności Międzynarodowego numeru rachunku (konta) bankowego zwanym dalej "IBAN", wykorzystywanym, gdy rachunek bankowy jest używany w rozliczeniach transgranicznych.
IBAN składa się z czterech członów i zawiera 28 znaków, z których:
- dwa pierwsze znaki stanowią 2-literowy kod Polski "PL",
- dwa następne znaki stanowią 2-cyfrową liczbę kontrolną,
- osiem kolejnych znaków stanowi 8-cyfrowy numer jednostki organizacyjnej banku prowadzącej rachunek bankowy,
- szesnaście ostatnich znaków stanowi 16-cyfrowy numer porządkowy rachunku w jednostce organizacyjnej banku prowadzącej rachunek bankowy.
(
http://www.finanse.ae.katowice.pl/tzielinski/bankowosc/pliki/07_CZYNNOSCI%20PASYWNE%20-%20RACHUNKI%20BANKOWE.doc
)
Walidacja numeru NRB
Kod
<?php function sprawdz_nr_konta($numer) { //(c) Bartłomiej Zastawnik, "Rzast". //Użycie funkcji dozwolone przy zachowaniu komentarzy. $puste = array(' ', '-', '_', '.', ',','/', '|');//znaki do usuniącia $temp = strtoupper(str_replace($puste, '', $numer));//Zostają cyferki + duże litery if (($temp{0}<='9')&&($temp{1}<='9')){//Jeżeli na początku są cyfry, to dopisujemy PL, inne kraje muszć być jawnie wprowadzone $temp ='PL'.$temp; } $temp=substr($temp,4).substr($temp, 0, 4);//przesuwanie cyfr kontrolnych na koniec $znaki=array('0'=>'0','1'=>'1','2'=>'2','3'=>'3','4'=>'4', '5'=>'5','6'=>'6','7'=>'7','8'=>'8','9'=>'9', 'A'=>'10','B'=>'11','C'=>'12','D'=>'13','E'=>'14','F'=>'15', 'G'=>'16','H'=>'17','I'=>'18','J'=>'19','K'=>'20', 'L'=>'21','M'=>'22','N'=>'23','O'=>'24','P'=>'25', 'Q'=>'26','R'=>'27','S'=>'28','T'=>'29','U'=>'30', 'V'=>'31','W'=>'32','X'=>'33','Y'=>'34','Z'=>'35');//Tablica zamienników, potrzebnych do wyliczenia sumy kontrolnej $ilosc=strlen($temp);//długość numeru $ciag=''; for ($i=0;$i<$ilosc;$i++){ $ciag.=$znaki[$temp{$i}]; } $mod = 0; $ilosc=strlen($ciag);//nowa długość numeru for($i=0;$i<$ilosc;$i=$i+6) { //oblicznie modulo, $ciag jest zbyt wielkć liczbę na format integer, wiąc dzielć go na kawaśki $mod = (int)($mod.substr($ciag, $i, 6)) % 97; } $out=($mod==1)?true:false; return $out; }
Jest to element FAQ, czyli zestawienia odpowiedzi na najczęściej zadawane pytania.
Zestawienie: Informacje | Podstawy PHP | Porady praktyczne | Pytania z forum | Bezpieczeństwo
