Generazione codice IBAN in PHP

Visto che online non si riesce a trovare una versione che effettui il calcolo del codice IBAN (e per calcolo intendo il calcolo del CIN e del codice di controllo dell'IBAN partendo dall'ABI, CAB e numero del conto) scritta in PHP, ho provveduto a fare il porting di una funzione javascript che svolge le stesse operazioni!

Ecco qui il codice

  1. function CalculateIBAN($ABI, $CAB, $AccountNumber)
  2. {
  3. // Inizializzazioni variabili
  4. $aa = 'A0B1C2D3E4F5G6H7I8J9K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#-#.# #';
  5. $bb = 'B1A0K#P#L#C2Q#D3R#E4V#O#S#F5T#G6U#H7M#I8N#J9W#Z#Y#X# #-#.#';
  6. $tabella = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  7. $iban2 = '';
  8. $dd = 0;
  9. $divisore = 97;
  10. $div1 = '';
  11. $bban = $ABI . $CAB . $AccountNumber;
  12.  
  13. // Calcola il CIN del BBAN
  14. $dd = 0;
  15. for($index = 1; $index < 22; $index += 2)
  16. {
  17. $dd = $dd + ((int)(strpos($aa, $bban{$index}) / 2));
  18. }
  19. for($index = 0; $index < 22; $index += 2)
  20. {
  21. $dd = $dd + ((int)(strpos($bb, $bban{$index}) / 2));
  22. }
  23. $dd = $dd - (((int)($dd / 26)) * 26);
  24.  
  25. $cin = $aa{$dd * 2};
  26.  
  27. // Calcola il codice di controllo dell'IBAN
  28. $bban1 = $cin . $bban . 'IT' . '00';
  29.  
  30. for($iban1 = 0; $iban1 < strlen($bban1); $iban1++)
  31. {
  32. $iban2 .= strpos($tabella, $bban1{$iban1});
  33. }
  34.  
  35. for ($ciclo1 = 0; $ciclo1 < strlen($iban2); $ciclo1++)
  36. {
  37. $div1 = $div1 . $iban2{$ciclo1};
  38.  
  39. if ($div1 < $divisore)
  40. {
  41. continue;
  42. }
  43. else
  44. {
  45. $div1 = $div1 % $divisore;
  46. }
  47. }
  48.  
  49. $iban2 = 98 - $div1;
  50. $iban2 = '0' . $iban2;
  51. $iban2 = $iban2{strlen($iban2) - 2} . $iban2{strlen($iban2) - 1};
  52.  
  53. // Restituisce l'IBAN
  54. return "IT" . $iban2 . $cin . $bban;
  55. }

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente. If you have a Gravatar account, used to display your avatar.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <csharp>, <diff>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <sql>, <xml>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

Ulteriori informazioni sulle opzioni di formattazione

CAPTCHA
Test per verificare se la richiesta proviene da un software o meno.