Avatar billede cybermaster Nybegynder
08. august 2006 - 17:49 Der er 1 løsning

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
Avatar billede cybermaster Nybegynder
08. august 2006 - 18:52 #1
En af venner kom forbi...

function find_digit($code_check)
    {
    $odd = true;
    $c = strlen($code_check);
    for ($i = 0; $i < $c; $i++)
        {
        if ($odd === true)
            {
            $multiplier = 3;
            $odd = false;
            }
        else
            {
            $multiplier = 1;
            $odd = true;
            }
            $code_check_tmp += $code_check{$i} * $multiplier;
        }

    $rest = $code_check_tmp % 10;
    $code_return = 10 - $rest;
    if($code_return==10) $code_return = 0;
    return $code_return;
    }

Sådan er det vist nok...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester