Ean8, check digit, udregn sidste karekter i barcode
function calculateChecksum() {// Calculating Checksum
// Consider the right-most digit of the message to be in an "odd" position,
// and assign odd/even to each character moving from right to left
// Odd Position = 3, Even Position = 1
// Multiply it by the number
// Add all of that and do 10-(?mod10)
$odd = true;
$this->checksumValue = 0;
$c = strlen($this->text);
for ($i = $c; $i > 0; $i--) {
if ($odd === true) {
$multiplier = 3;
$odd = false;
} else {
$multiplier = 1;
$odd = true;
}
if (!isset($this->keys[$this->text[$i - 1]])) {
return;
}
$this->checksumValue += $this->keys[$this->text[$i - 1]] * $multiplier;
}
$this->checksumValue = (10 - $this->checksumValue % 10) % 10;
}
Hej med jer jeg faldt over denne på nettet, men der skal vist ændre en del før jeg kan bruge den, har prøvet, men det gik ikke, så håber en af jer sidder med en løsning.
Vil gerne have det således at når jeg fx:
$check_digit = calculateChecksum("0010304");
At $check_digit kommer til at indeholde slut tallet / check cifferet.
Mvh
