Виявляється номер пластикової карти зовсім не випадковий. Для нумерації використовується алгоритм Місяць (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 хоч і проходить перевірку, але не є правильним. Так як цей номер використовується в рекламних цілях і в якості прикладів.