Luhn test of credit card numbers: Difference between revisions
Content added Content deleted
(Simplified D code) |
(→{{header|PHP}}: different version) |
||
Line 1,155: | Line 1,155: | ||
=={{header|PHP}}== |
=={{header|PHP}}== |
||
{{trans|C}} |
|||
⚫ | |||
<lang php>$numbers = "49927398716 49927398717 1234567812345678 1234567812345670"; |
|||
$sum = 0; |
|||
foreach (split(' ', $numbers) as $n) |
|||
$alt = false; |
|||
echo "$n is ", luhnTest($n) ? 'valid' : 'not valid', '</br>'; |
|||
⚫ | |||
$n = substr($num,$i,1); |
|||
⚫ | |||
if($alt){ |
|||
⚫ | |||
$n *= 2; |
|||
for ($i = $len-1; $i >= 0; $i--) { |
|||
$ord = ord($num[$i]); |
|||
} |
|||
if (($len - 1) & $i) { |
|||
$sum += $n; |
|||
$sum += $ord; |
|||
} else { |
|||
} |
|||
$sum += $ord / 5 + (2 * $ord) % 10; |
|||
⚫ | |||
} |
|||
} |
|||
⚫ | |||
}</lang> |
}</lang> |
||
<pre>49927398716 is valid |
|||
49927398717 is not valid |
|||
1234567812345678 is not valid |
|||
1234567812345670 is valid</pre> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |