Guest User

Untitled

a guest
Dec 15th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. <?php
  2. function is_valid_credit_card($s) {
  3. // оставить только цифры
  4. $s = strrev(preg_replace('/[^d]/','',$s));
  5.  
  6. // вычисление контрольной суммы
  7. $sum = 0;
  8. for ($i = 0, $j = strlen($s); $i < $j; $i++) {
  9. // использовать четные цифры как есть
  10. if (($i % 2) == 0) {
  11. $val = $s[$i];
  12. } else {
  13. // удвоить нечетные цифры и вычесть 9, если они больше 9
  14. $val = $s[$i] * 2;
  15. if ($val > 9) $val -= 9;
  16. }
  17. $sum += $val;
  18. }
  19.  
  20. // число корректно, если сумма равна 10
  21. return (($sum % 10) == 0);
  22. }
  23.  
  24. if (! is_valid_credit_card('4111 1111 1111 1234')) {
  25. echo 'ошибка в номере';
  26. }
  27. ?>
Add Comment
Please, Sign In to add comment