Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Verhoff {
- private $_d = array(
- //k= 0 1 2 3 4 5 6 7 8 9
- array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), //j=0
- array(1, 2, 3, 4, 0, 6, 7, 8, 9, 5), //j=1
- array(2, 3, 4, 0, 1, 7, 8, 9, 5, 6), //j=2
- array(3, 4, 0, 1, 2, 8, 9, 5, 6, 7), //j=3
- array(4, 0, 1, 2, 3, 9, 5, 6, 7, 8), //j=4
- array(5, 9, 8, 7, 6, 0, 4, 3, 2, 1), //j=5
- array(6, 5, 9, 8, 7, 1, 0, 4, 3, 2), //j=6
- array(7, 6, 5, 9, 8, 2, 1, 0, 4, 3), //j=7
- array(8, 7, 6, 5, 9, 3, 2, 1, 0, 4), //j=8
- array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0) //j=9
- ); //d(j, k)
- private $_p = array(
- //y= 0 1 2 3 4 5 6 7 8 9
- array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), //x=0
- array(1, 5, 7, 6, 2, 8, 3, 0, 9, 4), //x=1
- array(5, 8, 0, 3, 7, 9, 6, 1, 4, 2), //x=2
- array(8, 9, 1, 6, 0, 4, 3, 5, 2, 7), //x=3
- array(9, 4, 5, 3, 1, 2, 6, 8, 7, 0), //x=4
- array(4, 2, 8, 6, 5, 7, 3, 9, 0, 1), //x=5
- array(2, 7, 9, 3, 8, 0, 6, 4, 1, 5), //x=6
- array(7, 0, 4, 6, 9, 1, 3, 2, 5, 8) //x=7
- ); //p(x, y)
- //
- //j = 0 1 2 3 4 5 6 7 8 9
- private $_inv = array(0, 4, 3, 2, 1, 5, 6, 7, 8, 9);
- private $_num;
- public function __construct() {
- }
- private function _inv($i) {
- return $this->_inv[$i];
- }
- public function create($num) {
- $c = 0;
- $num = str_replace('_', ord('_'), $num);
- $this->_num = $num;
- $num = strrev($num);
- for ($i = 0; $i < strlen($num); $i++) {
- $c = $this->_d[$c][$this->_p[(($i + 1) % 8)][$num[$i]]];
- }
- return $this->_inv($c);
- }
- public function makesum() {
- $sumdig = $this->create($this->_num);
- return $this->_num . $sumdig;
- }
- public function test($num) {
- $control = substr($num, -1);
- $testnum = substr($num, 0, strlen($num) - 1);
- if ($this->create($testnum) == $control) {
- return true;
- }
- else
- return FALSE;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement