PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.14.0
GiveWP – Donation Plugin and Fundraising Platform v2.14.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / fakerphp / faker / src / Faker / Calculator / Luhn.php
give / vendor / fakerphp / faker / src / Faker / Calculator Last commit date
Ean.php 5 years ago Iban.php 5 years ago Inn.php 5 years ago Luhn.php 5 years ago TCNo.php 5 years ago
Luhn.php
76 lines
1 <?php
2
3 namespace Faker\Calculator;
4
5 use InvalidArgumentException;
6
7 /**
8 * Utility class for generating and validating Luhn numbers.
9 *
10 * Luhn algorithm is used to validate credit card numbers, IMEI numbers, and
11 * National Provider Identifier numbers.
12 *
13 * @see http://en.wikipedia.org/wiki/Luhn_algorithm
14 */
15 class Luhn
16 {
17 /**
18 * @param string $number
19 * @return int
20 */
21 private static function checksum($number)
22 {
23 $number = (string) $number;
24 $length = strlen($number);
25 $sum = 0;
26 for ($i = $length - 1; $i >= 0; $i -= 2) {
27 $sum += $number[$i];
28 }
29 for ($i = $length - 2; $i >= 0; $i -= 2) {
30 $sum += array_sum(str_split($number[$i] * 2));
31 }
32
33 return $sum % 10;
34 }
35
36 /**
37 * @param $partialNumber
38 * @return string
39 */
40 public static function computeCheckDigit($partialNumber)
41 {
42 $checkDigit = self::checksum($partialNumber . '0');
43 if ($checkDigit === 0) {
44 return 0;
45 }
46
47 return (string) (10 - $checkDigit);
48 }
49
50 /**
51 * Checks whether a number (partial number + check digit) is Luhn compliant
52 *
53 * @param string $number
54 * @return bool
55 */
56 public static function isValid($number)
57 {
58 return self::checksum($number) === 0;
59 }
60
61 /**
62 * Generate a Luhn compliant number.
63 *
64 * @param string $partialValue
65 *
66 * @return string
67 */
68 public static function generateLuhnNumber($partialValue)
69 {
70 if (!preg_match('/^\d+$/', $partialValue)) {
71 throw new InvalidArgumentException('Argument should be an integer.');
72 }
73 return $partialValue . Luhn::computeCheckDigit($partialValue);
74 }
75 }
76