36 lines
934 B
PHP
36 lines
934 B
PHP
<?php
|
|
|
|
namespace common\models;
|
|
|
|
class HuBankAccountValidator
|
|
{
|
|
|
|
public function validate($bankAccount){
|
|
if ( !isset($bankAccount)){
|
|
return false;
|
|
}
|
|
$stripedBankAccount = preg_replace('/\s+/', '', $bankAccount);
|
|
if ( !(strlen($stripedBankAccount) == 24 || strlen($stripedBankAccount) == 16)){
|
|
return false;
|
|
}
|
|
$arrayOfNumbers = str_split($stripedBankAccount);
|
|
$multipliers = [9,7,3,1];
|
|
$groups = [0,0,0];
|
|
for ( $i = 0; $i < count($arrayOfNumbers); $i++ ) {
|
|
$number = $arrayOfNumbers[$i];
|
|
$multiplier = $multipliers[$i % 4];
|
|
$total = $multiplier * $number;
|
|
$groups[intval($i / 8)] += $total ;
|
|
}
|
|
|
|
foreach ($groups as $group){
|
|
$mod = $group % 10;
|
|
if ( $mod > 0 ){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
} |