Script Modulo 10 (für Prüfziffer)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Script Modulo 10 (für Prüfziffer)

    Hallo Leute!!!

    Hab' ein Problemchen. Habe das folgende Script zur Generierung einer Prüfziffer (Modulo 10) im Internet gefunden; bringe es aber irgendwie nicht richtig zum Laufen!

    Kann mir jemand helfen?

    Skript:

    <?php
    function cdv10($str)
    {

    if (is_string($str))
    {
    for ($i=0;$i<strlen($str); $i++)
    {
    $out = $out . Ord(substr($str,$i,1));
    }
    }
    else
    $out=$str;

    // is the length odd or even
    if ((int)(strlen($out)/2) == (int)((strlen($out)/2)+0.9))
    $m=0;
    else
    $m=1;

    // sum the values for each digit, take care of values > 9
    for ($i=0;$i<strlen($out); $i++)
    {
    $m=($m==1)?2:1;
    $v=$m*substr($out, $i, 1);
    if ($v>9)
    $v=(substr($v, 0, 1)+substr($v, 1, 1));
    $sum = $sum + $v;
    }

    // what is the check digit??
    $cd=(round($sum/10+0.49)*10) - $sum;
    };

    ?>

  • #2
    was gibt die denn aus, wenn du am ende

    return $cd;

    dranhängst?

    Kommentar


    • #3
      eben gar nicht's!

      Hast Du eine Idee was da los ist?

      Kommentar


      • #4
        wie rufst du sie denn auf?

        ich kenne die modulo berechnung ohnehin nur in dem stil:

        $mod = 5 % 2;

        Kommentar


        • #5
          $zahl = 12345;

          cdv10($zahl);

          mach' ich da was falsch???

          Kommentar


          • #6
            cdv() muss doch irgendwas ausgeben, oder?

            änder mal dein skript wie unten:
            PHP-Code:
            <?php
            function cdv10($str)
            {

            if (
            is_string($str))
            {
            for (
            $i=0;$i<strlen($str); $i++)
            {
            $out $out Ord(substr($str,$i,1));
            }
            }
            else
            $out=$str;

            // is the length odd or even
            if ((int)(strlen($out)/2) == (int)((strlen($out)/2)+0.9))
            $m=0;
            else
            $m=1;

            // sum the values for each digit, take care of values > 9
            for ($i=0;$i<strlen($out); $i++)
            {
            $m=($m==1)?2:1;
            $v=$m*substr($out$i1);
            if (
            $v>9)
            $v=(substr($v01)+substr($v11));
            $sum $sum $v;
            }

            // what is the check digit??
            $cd=(round($sum/10+0.49)*10) - $sum;

            // return dranhängen!!!
            return $cd;

            }

            ?>
            dann mach mal:

            echo cdv10(12345);

            Kommentar


            • #7
              hallo? ThomasM?

              Kommentar


              • #8
                thanks! es funktioniert!

                Kommentar


                • #9
                  hey beebob, bist du das da aufm bild ?
                  meine Projekte bestaunen: http://www.kleiza.de

                  Kommentar


                  • #10
                    nein, das ist ein altes führerscheinfoto meines vaters, als er noch 18 war. er sah damals ein wenig besser aus, als ich heute (bin 26).

                    Kommentar


                    • #11
                      hehe, nicht schlecht, verletzt du da nicht gegen irgendwelche copywrite rechte ? is er da wirklich erst 18 ?
                      meine Projekte bestaunen: http://www.kleiza.de

                      Kommentar


                      • #12
                        ich glaub stallman hat da nix gegen als gnu vater

                        Kommentar

                        Lädt...
                        X