Изборник Затворити

Рачунање контролног броја по модулу 97 у PHP

Скраћена веза: https://pedja.supurovic.net/veza/8494

Затребало ми је да израчунам контролни број по модулу 97, али нигде нисам нашао пример урађен у PHP. Пошто сам написао функцију која то ради, ево је овде, ако још некоме буде требало.

function Modul97 ($pBroj) {

  $mBroj = '';
  $mFixedBroj = '';

  foreach (str_split (strtoupper((string)$pBroj)) as $mChar) {
  
    if (is_numeric ($mChar)) {
      $mBroj .= $mChar;
      $mFixedBroj .= $mChar;
    } else {
      if (ctype_alpha($mChar)) {
        $mBroj .= $mChar;
        $mNumeric = ord ($mChar) - 65 + 10;
        $mFixedBroj .= (string)$mNumeric;
      } else {
        $mBroj .= '-';
      }
    }
    
  }
  
  $mFixedBroj00 = $mFixedBroj . '00';
  
  $mModule = bcmod ($mFixedBroj00, 97);
  
  $mControl = 98 - $mModule;
  
  $mResult = (string)$mControl . '-' . $mBroj; 

  return $mResult; 

}

Функција као улазни параметар очекује број за који треба израчунат контролни број. Број може бити нумеричка вреност или низ знакова који садржи и слова и знакове интерпункције.

Функција као излаз даје низ хнаков акоји садрже улазни број коме је придодат и контролни број.

Сви знакови у улазном броју који нису слова или бројеви ће бити замењени знаком ‘-‘. Мала слова ће бити претворена у велика.

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *

Попуните израз тако да буде тачан: *

Ово веб место користи Акисмет како би смањило непожељне. Сазнајте како се ваши коментари обрађују.