Pressroom template verwijderd, website naar root van repo
This commit is contained in:
71
vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php
vendored
Normal file
71
vendor/fzaninotto/faker/src/Faker/Calculator/Iban.php
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Calculator;
|
||||
|
||||
class Iban
|
||||
{
|
||||
/**
|
||||
* Generates IBAN Checksum
|
||||
*
|
||||
* @param string $iban
|
||||
* @return string Checksum (numeric string)
|
||||
*/
|
||||
public static function checksum($iban)
|
||||
{
|
||||
// Move first four digits to end and set checksum to '00'
|
||||
$checkString = substr($iban, 4) . substr($iban, 0, 2) . '00';
|
||||
|
||||
// Replace all letters with their number equivalents
|
||||
$checkString = preg_replace_callback('/[A-Z]/', array('self','alphaToNumberCallback'), $checkString);
|
||||
|
||||
// Perform mod 97 and subtract from 98
|
||||
$checksum = 98 - self::mod97($checkString);
|
||||
|
||||
return str_pad($checksum, 2, '0', STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
private static function alphaToNumberCallback($match)
|
||||
{
|
||||
return self::alphaToNumber($match[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts letter to number
|
||||
*
|
||||
* @param string $char
|
||||
* @return int
|
||||
*/
|
||||
public static function alphaToNumber($char)
|
||||
{
|
||||
return ord($char) - 55;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates mod97 on a numeric string
|
||||
*
|
||||
* @param string $number Numeric string
|
||||
* @return int
|
||||
*/
|
||||
public static function mod97($number)
|
||||
{
|
||||
$checksum = (int)$number[0];
|
||||
for ($i = 1, $size = strlen($number); $i < $size; $i++) {
|
||||
$checksum = (10 * $checksum + (int) $number[$i]) % 97;
|
||||
}
|
||||
return $checksum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether an IBAN has a valid checksum
|
||||
*
|
||||
* @param string $iban
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isValid($iban)
|
||||
{
|
||||
return self::checksum($iban) === substr($iban, 2, 2);
|
||||
}
|
||||
}
|
||||
58
vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php
vendored
Normal file
58
vendor/fzaninotto/faker/src/Faker/Calculator/Luhn.php
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Calculator;
|
||||
|
||||
/**
|
||||
* Utility class for generating Luhn checksum and validating a number
|
||||
*
|
||||
* Luhn algorithm is used to validate credit card numbers, IMEI numbers, and
|
||||
* National Provider Identifier numbers.
|
||||
*
|
||||
* @see http://en.wikipedia.org/wiki/Luhn_algorithm
|
||||
*/
|
||||
class Luhn
|
||||
{
|
||||
/**
|
||||
* @param string $number
|
||||
* @return int
|
||||
*/
|
||||
private static function checksum($number)
|
||||
{
|
||||
$number = (string) $number;
|
||||
$length = strlen($number);
|
||||
$sum = 0;
|
||||
for ($i = $length - 1; $i >= 0; $i -= 2) {
|
||||
$sum += $number{$i};
|
||||
}
|
||||
for ($i = $length - 2; $i >= 0; $i -= 2) {
|
||||
$sum += array_sum(str_split($number{$i} * 2));
|
||||
}
|
||||
|
||||
return $sum % 10;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $partialNumber
|
||||
* @return string
|
||||
*/
|
||||
public static function computeCheckDigit($partialNumber)
|
||||
{
|
||||
$checkDigit = self::checksum($partialNumber . '0');
|
||||
if ($checkDigit === 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (string) (10 - $checkDigit);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a number (partial number + check digit) is Luhn compliant
|
||||
*
|
||||
* @param string $number
|
||||
* @return bool
|
||||
*/
|
||||
public static function isValid($number)
|
||||
{
|
||||
return self::checksum($number) === 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user