private function validateCardNumber($card_number) { if (!$card_number) { return false; } //check wrong symbol in number if (!preg_match('/^[\\s\\d]*$/', $card_number)) { return false; } //delete spaces $card_number = preg_replace('/\\D/', '', $card_number); //not empty if ($card_number == '') { return false; } //check length if (strlen($card_number) > 20 || strlen($card_number) < 13) { return false; } //luhn algoritm $luhn = new Luhn(); if (!$luhn->check($card_number)) { return false; } return true; }
/** * Tests if Luhn validator is able to detect valid Luhn sequences */ public function testIsValid() { // Arrange $luhnValidator = new Luhn(); // Arrange // Assert foreach ($this->validLuhns as $number) { $this->assertTrue($luhnValidator->isValid($number)); } foreach ($this->invalidLuhns as $number) { $this->assertFalse($luhnValidator->isValid($number)); } }
private static function validateIsbn13($isbn13) { if (strlen($isbn13) != 13 || !ctype_digit($isbn13)) { return false; } return Luhn::check($isbn13, 13, false); }
/** * @param mixed $iswc * * @return bool */ public static function validate($iswc) { if (!(bool) preg_match('/^\\s*T[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)\\s*$/i', $iswc)) { return false; } $hyphens = ['‐', '-', '.']; $iswc = parent::unDecorate($iswc, $hyphens); $sum = 1; for ($i = 1; $i <= 9; ++$i) { $sum = $sum + $i * (int) $iswc[$i]; } $rem = $sum % 10; if ($rem !== 0) { $rem = 10 - $rem; } return (int) $iswc[10] === $rem; }
/** * @dataProvider isCheckDigitValidProvider */ public function testIsCheckDigitValid($testNumber, $expectedResult) { $algorithm = new Luhn(); $this->assertEquals($expectedResult, $algorithm->isCheckDigitValid($testNumber)); }
/** * Calculates the checksum of a swedish social security number (personnummer) * * Using the Luhn algorithm */ public static function calcLunh($ssn) { // remove first 2 digits of YYYY if (strlen($ssn) == 12) { $ssn = substr($ssn, 2); } if (strlen($ssn) != 10) { throw new \Exception('XXX should not happen'); } $sum = Luhn::Calculate(substr($ssn, 0, -1)); return substr($ssn, -1, 1) == $sum; }
<?php /** * Created by PhpStorm. * User: bamdad * Date: 2/3/2016 * Time: 9:02 PM */ include_once './autoload.php'; $luhn = new Luhn(); $luhn->validate(79927398713); echo $luhn->luhanize(79927398714);
/** * {@inheritdoc} */ public static function unDecorate($gtin, $hyphens = self::HYPHENS) { return parent::unDecorate($gtin, $hyphens); }