Статьи

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

Виявляється номер пластикової карти зовсім не випадковий Виявляється номер пластикової карти зовсім не випадковий. Для нумерації використовується алгоритм Місяць (Luhn algorithm). Потрібен він для перевірки правильності номера. function

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

& nbsp ;

Однак номер 4111 1111 1111 1111 хоч і проходить перевірку, але не є правильним. Так як цей номер використовується в рекламних цілях і в якості прикладів.

Новости