Witam,
Czy ktoś wie skąd wziąć skrypt php, który rozpozna nazwę banku po numerze konta?
Proszę o info
Pozdrawiam
<?php /** * Klasa walidacji nr rachunku bankowego wg NRB * autor: Darek Wapiński darek@wapinski.us 2014 * * Jak używać: * * <?php * * // nr konta w konstruktorze mozemy podac w dowolnym formatowaniu * // spacje zostaną usuniete * * header("Content-type: text/plain"); * $nrb = new NRB("37114020040000310242321556"); * * if ($nrb->poprawny()) { * echo $nrb->formatuj(); * echo "\n"; * echo $nrb->dekodujNazwe(); * } else { * echo "\n$nrb->blad: ".$nrb->formatuj(); * } * ?> * * wynik: * * 37 1140 2004 0000 3102 4232 1556 * mBank SA - O. Bankowości Detalicznej * * jak widać powyżej, nr rachunku zostanie odpowiedni sformatowany */ class NRB { public $numerRachunku; public $numerRachunkuSformatowany; public $nazwaBanku; public $status; public $blad; /** * __construct($string) * Kontruktor klasy * Funkcja pobiera nr rachunku i usuwa zbędne znaki z numeru * @param string $nrRachunku */ function __construct ($nrRachunku) { } else { $this->numerRachunku = $nrRachunku; /* usuwamy zbędne znaki */ /* pozostawiamy wielkie litery i cyfry */ /* Jeżeli na początku są cyfry, to dopisujemy PL, inne kraje muszą być jawnie wprowadzone if (($temp{0} <= '9') && ($temp{1}<='9')) { $this->numerRachunku = 'PL'.$temp; } - pomijam, do późniejszego rozwoju funkcji */ $this->numerRachunku = $temp; $this->blad = ""; } } /** * formatuj() * Funkcja formatuje string z numerek konta do postaci: * ## #### #### #### #### #### #### * @return string */ public function formatuj() { $this->numerRachunkuSformatowany = $suma.' '.$nr_roz1.' '.$nr_roz2.' '.$nr_rach1.' '.$nr_rach2.' '.$nr_rach3.' '.$nr_rach4; return $this->numerRachunkuSformatowany; } public function poprawny() { /* usuwamy zbędne znaki */ // Sprawdzenie czy przekazany numer zawiera 26 znaków $this->blad = "Rachunek nie zawiera 26 cyfr: $nrb->numerRachunku (zawiera $i cyfr)"; return false; } // Zdefiniowanie tablicy z wagami poszczególnych cyfr $aWagiCyfr = array(1, 10, 3, 30, 9, 90, 27, 76, 81, 34, 49, 5, 50, 15, 53, 45, 62, 38, 89, 17, 73, 51, 25, 56, 75, 71, 31, 19, 93, 57); // Dodanie kodu kraju (w tym przypadku dodajemy kod PL) $iNRB = $iNRB.'2521'; // Wyzerowanie zmiennej $iSumaCyfr = 0; // Pętla obliczająca sumę cyfr w numerze konta for ($i = 0; $i < 30; $i++) { $iSumaCyfr += $iNRB[29 - $i] * $aWagiCyfr[$i]; } // Sprawdzenie czy modulo z sumy wag poszczegolnych cyfr jest rowne 1 return ($iSumaCyfr % 97 == 1); } public function dekodujNazwe() { /* tablica nr rozliczeniowy -> nazwa => ograniczylem sie do mBank i Millenium poniewaz dluższy kod nie wejdzie we wpisie. */ $bank['11401977'] = 'mBank SA - II O. Korporacyjny Warszawa'; $bank['11401980'] = 'mBank SA - XIX F. w Łodzi (O.Korporacyjny Łódź)'; $bank['11401993'] = 'mBank SA - O. Korporacyjny Kalisz'; $bank['11402004'] = 'mBank SA - O. Bankowości Detalicznej'; $bank['11402017'] = 'mBank SA - O. Bankowości Detalicznej'; $bank['11402020'] = 'mBank SA - O. Korporacyjny Kielce'; $bank['11402059'] = 'mBank SA - F. Nr 3 (O. Bankowości Detalicznej)'; $bank['11402062'] = 'mBank SA - III O. Korporacyjny Warszawa'; $bank['11402075'] = 'mBank SA - O.Korporacyjny Nowy Sącz'; $bank['11402088'] = 'mBank SA - O. Korporacyjny Toruń'; $bank['11402091'] = 'mBank SA - O. Korporacyjny Wałbrzych'; $bank['11402105'] = 'mBank SA - IV Oddział Korporacyjny Warszawa'; $bank['11402118'] = 'mBank SA - O. Korporacyjny Koszalin'; $bank['11402121'] = 'mBank SA - Oddział Bankowości Detalicznej'; $bank['11420008'] = 'mBank SA - Oddział Bankowości Detalicznej'; $bank['11600006'] = 'Bank Millennium SA - Centrala'; $bank['11602202'] = 'Bank Millennium SA - Millennium - Centrum Rozliczeniowe'; /* .... tutaj kolejne banki */ /* mapowanie nr_rozliczeniowy -> nazwa */ $nazwa_banku = $bank[''.$nr_rozliczeniowy.''] !== NULL ? $bank[''.$nr_rozliczeniowy.''] : $this->blad = "Nie odnalazłem nazwy banku"; $this->nazwaBanku = $nazwa_banku; return $this->nazwaBanku; } } $nrb = new NRB("37114020040000310242321556"); if ($nrb->poprawny()) { } else { }
$nr = '65789465486598754324561547';