Вход Регистрация
Файл: sngine-v2.8/Script/includes/libs/Faker/Faker/Calculator/TCNo.php
Строк: 53
<?php

namespace FakerCalculator;

use 
InvalidArgumentException;

class 
TCNo
{
    
/**
     * Generates Turkish Identity Number Checksum
     * Gets first 9 digit as prefix and calcuates checksums
     *
     * https://en.wikipedia.org/wiki/Turkish_Identification_Number
     *
     * @param string $identityPrefix
     * @return string Checksum (two digit)
     */
    
public static function checksum($identityPrefix)
    {
        if (
strlen((string)$identityPrefix) !== 9) {
            throw new 
InvalidArgumentException('Argument should be an integer and should be 9 digits.');
        }

        
$oddSum 0;
        
$evenSum 0;

        
$identityArray array_map('intval'str_split($identityPrefix)); // Creates array from int
        
foreach ($identityArray as $index => $digit) {
            if (
$index == 0) {
                
$evenSum += $digit;
            } else {
                
$oddSum += $digit;
            }
        }

        
$tenthDigit = ($evenSum $oddSum) % 10;
        
$eleventhDigit = ($evenSum $oddSum $tenthDigit) % 10;

        return 
$tenthDigit $eleventhDigit;
    }

    
/**
     * Checks whether an TCNo has a valid checksum
     *
     * @param string $tcNo
     * @return boolean
     */
    
public static function isValid($tcNo)
    {
        return 
self::checksum(substr($tcNo0, -2)) === substr($tcNo, -22);
    }
}
Онлайн: 0
Реклама