![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ledger.corals.io/vendor/fzaninotto/faker/src/Faker/Calculator/ |
<?php namespace Faker\Calculator; /** * Utility class for validating EAN-8 and EAN-13 numbers * * @package Faker\Calculator */ class Ean { /** @var string EAN validation pattern */ const PATTERN = '/^(?:\d{8}|\d{13})$/'; /** * Computes the checksum of an EAN number. * * @see https://en.wikipedia.org/wiki/International_Article_Number * * @param string $digits * @return int */ public static function checksum($digits) { $length = strlen($digits); $even = 0; for ($i = $length - 1; $i >= 0; $i -= 2) { $even += $digits[$i]; } $odd = 0; for ($i = $length - 2; $i >= 0; $i -= 2) { $odd += $digits[$i]; } return (10 - ((3 * $even + $odd) % 10)) % 10; } /** * Checks whether the provided number is an EAN compliant number and that * the checksum is correct. * * @param string $ean An EAN number * @return boolean */ public static function isValid($ean) { if (!preg_match(self::PATTERN, $ean)) { return false; } return self::checksum(substr($ean, 0, -1)) === intval(substr($ean, -1)); } }