ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 18.219.50.175 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/hrupgrade/vendor/fakerphp/faker/src/Faker/Calculator/ |
Upload File : |
<?php namespace Faker\Calculator; /** * Utility class for validating ISBN-10 */ class Isbn { /** * @var string ISBN-10 validation pattern */ public const PATTERN = '/^\d{9}[0-9X]$/'; /** * ISBN-10 check digit * * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digits * * @param string $input ISBN without check-digit * * @throws \LengthException When wrong input length passed */ public static function checksum(string $input): string { // We're calculating check digit for ISBN-10 // so, the length of the input should be 9 $length = 9; if (strlen($input) !== $length) { throw new \LengthException(sprintf('Input length should be equal to %d', $length)); } $digits = str_split($input); array_walk( $digits, static function (&$digit, $position) { $digit = (10 - $position) * $digit; } ); $result = (11 - array_sum($digits) % 11) % 11; // 10 is replaced by X return ($result < 10) ? (string) $result : 'X'; } /** * Checks whether the provided number is a valid ISBN-10 number * * @param string $isbn ISBN to check */ public static function isValid(string $isbn): bool { if (!preg_match(self::PATTERN, $isbn)) { return false; } return self::checksum(substr($isbn, 0, -1)) === substr($isbn, -1); } }