067 607 57 84
МЕНЮ

PHP - алгоритм перевірки коректності номера кредитної картки

Створення сайтів Львів

Виявляється номер пластикової карти зовсім не випадковий. Для нумерації використовується алгоритм Місяць. Алгоритм Місяць (англ. Luhn algorithm) - алгоритм обчислення контрольної цифри номера пластикових карт відповідно до стандарту ISO/IEC 7812.

<?php
function is_valid_credit_card($s) {
    // залишити тільки цифри
    $s = strrev(preg_replace('/[^\d]/','',$s)); 
    // обчислення контрольної суми
    $sum = 0;
    for ($i = 0, $j = strlen($s); $i < $j; $i++) {
        // використовувати парні цифри як є
        if (($i % 2) == 0) {
            $val = $s[$i];
        } else {
            // подвоїти непарні цифри і відняти 9, якщо вони більше 9
            $val = $s[$i] * 2;
            if ($val > 9)  $val -= 9;
        }
        $sum += $val;
    }
    // число коректне, якщо сума дорівнює 10
    return (($sum % 10) == 0);
}
if (! is_valid_credit_card('4111 1111 1111 1234')) {
    echo 'помилка в номері';
}
?>