| @@ 681-688 (lines=8) @@ | ||
| 678 | // calculate check digit C |
|
| 679 | $p = 1; |
|
| 680 | $check = 0; |
|
| 681 | for ($i = ($len - 1); $i >= 0; --$i) { |
|
| 682 | $k = array_keys($chars, $code{$i}); |
|
| 683 | $check += ($k[0] * $p); |
|
| 684 | ++$p; |
|
| 685 | if ($p > 20) { |
|
| 686 | $p = 1; |
|
| 687 | } |
|
| 688 | } |
|
| 689 | $check %= 47; |
|
| 690 | $c = $chars[$check]; |
|
| 691 | $code .= $c; |
|
| @@ 695-702 (lines=8) @@ | ||
| 692 | // calculate check digit K |
|
| 693 | $p = 1; |
|
| 694 | $check = 0; |
|
| 695 | for ($i = $len; $i >= 0; --$i) { |
|
| 696 | $k = array_keys($chars, $code{$i}); |
|
| 697 | $check += ($k[0] * $p); |
|
| 698 | ++$p; |
|
| 699 | if ($p > 15) { |
|
| 700 | $p = 1; |
|
| 701 | } |
|
| 702 | } |
|
| 703 | $check %= 47; |
|
| 704 | $k = $chars[$check]; |
|
| 705 | $checksum = $c.$k; |
|