<?phpclass IBAN{public static $ibanlar = ['AA' => [12, '^[A-Z0-9]{12}$'],'AD' => [20, '^[0-9]{4}[0-9]{4}[A-Z0-9]{12}$'],'AE' => [19, '^[0-9]{3}[0-9]{16}$'],'AL' => [24, '^[0-9]{8}[A-Z0-9]{16}$'],'AO' => [21, '^[0-9]{21}$'],'AT' => [16, '^[0-9]{5}[0-9]{11}$'],'AX' => [14, '^[0-9]{6}[0-9]{7}[0-9]{1}$'],'AZ' => [24, '^[A-Z]{4}[A-Z0-9]{20}$'],'BA' => [16, '^[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}$'],'BE' => [12, '^[0-9]{3}[0-9]{7}[0-9]{2}$'],'BF' => [23, '^[0-9]{23}$'],'BG' => [18, '^[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}$'],'BH' => [18, '^[A-Z]{4}[A-Z0-9]{14}$'],'BI' => [12, '^[0-9]{12}$'],'BJ' => [24, '^[A-Z]{1}[0-9]{23}$'],'BL' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'BR' => [25, '^[0-9]{8}[0-9]{5}[0-9]{10}[A-Z]{1}[A-Z0-9]{1}$'],'CH' => [17, '^[0-9]{5}[A-Z0-9]{12}$'],'CI' => [24, '^[A-Z]{1}[0-9]{23}$'],'CM' => [23, '^[0-9]{23}$'],'CR' => [17, '^[0-9]{4}[0-9]{13}$'],'CV' => [21, '^[0-9]{21}$'],'CY' => [24, '^[0-9]{3}[0-9]{5}[A-Z0-9]{16}$'],'CZ' => [20, '^[0-9]{4}[0-9]{6}[0-9]{10}$'],'DE' => [18, '^[0-9]{8}[0-9]{10}$'],'DK' => [14, '^[0-9]{4}[0-9]{9}[0-9]{1}$'],'DO' => [24, '^[A-Z0-9]{4}[0-9]{20}$'],'DZ' => [20, '^[0-9]{20}$'],'EE' => [16, '^[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}$'],'ES' => [20, '^[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}$'],'FI' => [14, '^[0-9]{6}[0-9]{7}[0-9]{1}$'],'FO' => [14, '^[0-9]{4}[0-9]{9}[0-9]{1}$'],'FR' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'GB' => [18, '^[A-Z]{4}[0-9]{6}[0-9]{8}$'],'GE' => [18, '^[A-Z]{2}[0-9]{16}$'],'GF' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'GI' => [19, '^[A-Z]{4}[A-Z0-9]{15}$'],'GL' => [14, '^[0-9]{4}[0-9]{9}[0-9]{1}$'],'GP' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'GR' => [23, '^[0-9]{3}[0-9]{4}[A-Z0-9]{16}$'],'GT' => [24, '^[A-Z0-9]{4}[A-Z0-9]{20}$'],'HR' => [17, '^[0-9]{7}[0-9]{10}$'],'HU' => [24, '^[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}$'],'IE' => [18, '^[A-Z]{4}[0-9]{6}[0-9]{8}$'],'IL' => [19, '^[0-9]{3}[0-9]{3}[0-9]{13}$'],'IR' => [22, '^[0-9]{22}$'],'IS' => [22, '^[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}$'],'IT' => [23, '^[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}$'],'JO' => [26, '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$'],'KW' => [26, '^[A-Z]{4}[A-Z0-9]{22}$'],'KZ' => [16, '^[0-9]{3}[A-Z0-9]{13}$'],'LB' => [24, '^[0-9]{4}[A-Z0-9]{20}$'],'LC' => [28, '^[A-Z]{4}[A-Z0-9]{24}$'],'LI' => [17, '^[0-9]{5}[A-Z0-9]{12}$'],'LT' => [16, '^[0-9]{5}[0-9]{11}$'],'LU' => [16, '^[0-9]{3}[A-Z0-9]{13}$'],'LV' => [17, '^[A-Z]{4}[A-Z0-9]{13}$'],'MC' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'MD' => [20, '^[A-Z0-9]{2}[A-Z0-9]{18}$'],'ME' => [18, '^[0-9]{3}[0-9]{13}[0-9]{2}$'],'MF' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'MG' => [23, '^[0-9]{23}$'],'MK' => [15, '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$'],'ML' => [24, '^[A-Z]{1}[0-9]{23}$'],'MQ' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'MR' => [23, '^[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}$'],'MT' => [27, '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$'],'MU' => [26, '^[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}$'],'MZ' => [21, '^[0-9]{21}$'],'NC' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'NL' => [14, '^[A-Z]{4}[0-9]{10}$'],'NO' => [11, '^[0-9]{4}[0-9]{6}[0-9]{1}$'],'PF' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'PK' => [20, '^[A-Z]{4}[A-Z0-9]{16}$'],'PL' => [24, '^[0-9]{8}[0-9]{16}$'],'PM' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'PS' => [25, '^[A-Z]{4}[A-Z0-9]{21}$'],'PT' => [21, '^[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}$'],'QA' => [25, '^[A-Z]{4}[0-9]{4}[A-Z0-9]{17}$'],'RE' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'RO' => [20, '^[A-Z]{4}[A-Z0-9]{16}$'],'RS' => [18, '^[0-9]{3}[0-9]{13}[0-9]{2}$'],'SA' => [20, '^[0-9]{2}[A-Z0-9]{18}$'],'SC' => [27, '^[A-Z]{4}[0-9]{4}[0-9]{16}[A-Z]{3}$'],'SE' => [20, '^[0-9]{3}[0-9]{16}[0-9]{1}$'],'SI' => [15, '^[0-9]{5}[0-9]{8}[0-9]{2}$'],'SK' => [20, '^[0-9]{4}[0-9]{6}[0-9]{10}$'],'SM' => [23, '^[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}$'],'SN' => [24, '^[A-Z]{1}[0-9]{23}$'],'ST' => [21, '^[0-9]{8}[0-9]{11}[0-9]{2}$'],'TF' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'TL' => [19, '^[0-9]{3}[0-9]{14}[0-9]{2}$'],'TN' => [20, '^[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}$'],'TR' => [22, '^[0-9]{5}[0-9]{1}[A-Z0-9]{16}$'],'UA' => [25, '^[0-9]{6}[A-Z0-9]{19}$'],'VG' => [20, '^[A-Z]{4}[0-9]{16}$'],'WF' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$'],'XK' => [16, '^[0-9]{4}[0-9]{10}[0-9]{2}$'],'YT' => [23, '^[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}$']];private $iban;public function dogrula($iban){$this->iban = preg_replace('/[^a-z0-9]+/i', '', trim(strtoupper($iban)));if(!isset(static::$ibanlar[substr($this->iban,0,2)])){$hata = 'IBAN ülke kodu geçerli değil veya desteklenmiyor';}elseif (strlen($this->iban) !== 4+static::$ibanlar[substr($this->iban,0,2)][0]){$hata = 'IBAN uzunluğu geçersiz';}elseif(preg_match('/'.static::$ibanlar[substr($this->iban,0,2)][1].'/',substr($this->iban,4)) !== 1){$hata = 'IBAN biçimi geçersiz';}elseif(!($this->bcmod((substr($this->iban,4).$this->kodno(substr($this->iban,0,2)).substr($this->iban,2,2)),97)==='1')) {$hata = 'IBAN sağlama toplamı geçersiz';} else {$hata = '';}if($hata == ""){return "Geçerli";}else{return $hata;}}public function duzelt(){return sprintf('%s %s %s',substr($this->iban,0,2) . substr($this->iban,2,2),substr(substr($this->iban,4,4), 0, 4),implode(' ', str_split(substr($this->iban,8, static::$ibanlar[substr($this->iban,0,2)][0] -4), 4)));}private function kodno($lR){$nR = '';foreach (str_split($lR) as $char) {$ord = ord($char);if ($ord >= 65 && $ord <= 90) {$nR .= (string) ($ord - 55);} elseif ($ord >= 48 && $ord <= 57) {$nR .= (string) ($ord - 48);}}return $nR;}private function bcmod($x, $y){if (!function_exists('bcmod')) {$al = 5;$mod = '';do {$a = (int)$mod . substr($x, 0, $al);$x = substr($x, $al);$mod = $a % $y;} while (strlen($x));return (string)$mod;} else {return bcmod($x, $y);}}}$i=new IBAN;echo $i->dogrula("TR320006701000000048830001")."<br>";echo $i->duzelt()."<br>";?>
Çıktısı
GeçerliTR32 0006 7010 0000 0048 8300 01