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 / Ean.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
Ean.php
56 lines
1 <?php
2
3 namespace Faker\Calculator;
4
5 /**
6 * Utility class for validating EAN-8 and EAN-13 numbers
7 *
8 * @package Faker\Calculator
9 */
10 class Ean
11 {
12 /** @var string EAN validation pattern */
13 const PATTERN = '/^(?:\d{8}|\d{13})$/';
14
15 /**
16 * Computes the checksum of an EAN number.
17 *
18 * @see https://en.wikipedia.org/wiki/International_Article_Number
19 *
20 * @param string $digits
21 * @return int
22 */
23 public static function checksum($digits)
24 {
25 $length = strlen($digits);
26
27 $even = 0;
28 for ($i = $length - 1; $i >= 0; $i -= 2) {
29 $even += $digits[$i];
30 }
31
32 $odd = 0;
33 for ($i = $length - 2; $i >= 0; $i -= 2) {
34 $odd += $digits[$i];
35 }
36
37 return (10 - ((3 * $even + $odd) % 10)) % 10;
38 }
39
40 /**
41 * Checks whether the provided number is an EAN compliant number and that
42 * the checksum is correct.
43 *
44 * @param string $ean An EAN number
45 * @return boolean
46 */
47 public static function isValid($ean)
48 {
49 if (!preg_match(self::PATTERN, $ean)) {
50 return false;
51 }
52
53 return self::checksum(substr($ean, 0, -1)) === intval(substr($ean, -1));
54 }
55 }
56