note 79902 deleted from function.strrev by hholzgra
| From: | hholzgra@php.net | Date: | Thu, 02 Aug 2012 11:29:14 +0000 |
| Subject: | note 79902 deleted from function.strrev by hholzgra | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-189592@lists.php.net to get a copy of this message | ||
Note Submitter: Anonymous
----
MOD10, Modulus10 or also called LUHN10 will generate a valid check digit.
<?php
$inv = "34586";
echo $inv . checkdigit($inv);
// Outputs 345868
function checkdigit($num) {
$sum = 0;
$pos = 0;
$rev = strrev($num);
$len = strlen($num);
if ($len % 2 == 0) $len += 1;
while ($pos < $len) {
$odd = $rev[$pos] * 2;
if ($odd > 9) {
$odd -= 9;
}
$sum += $odd;
if ($pos != ($len - 2)) {
$sum += $rev[$pos +1];
}
$pos += 2;
}
return ((floor($sum/10) + 1) * 10 - $sum) % 10;
}
?>