![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.09.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie pamiętam czy tutaj ktoś się o to pytał, czy gdzieś indziej (w searchu nie znalazłem odpowiedniego posta) - więc sorek, jeśli zaśmiecam forum
![]() Skrypt (funkcja) sprawdza czy wpisana liczba (do funkcji wpisujemy typ string) jest własciwa pod względem zgodności z algorytmem obliczania tej ostatniej cyfry kontrolnej. Kod <?php //////////////////////////////////////////////////////////////// // Funkcja sprawdzajaca cyfre kontrolna dla numeru w // standardzie EAN.UCC 8,13 lub 13+2 // Na wejsciu mamy liczbe, cyfre 8,13 lub 15 znakowa (string ! - funkcja nie sprawdza typu) // Na wyjsciu otrzymujemy true lub false // // droocik(na)WYTNIJ_TOTO_pdz.pl // // This program is free software. You can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License. ///////////////////////////////////////////////////////////////// function ean ($liczba) { $jaki_ean = strlen($liczba); switch ($jaki_ean) { case 8: $typ_ean = 7; $j = 3; break; case 13: $typ_ean = 12; $j= 1; break; case 15: // EAN 13+2 $typ_ean = 12; $j= 1; break; $typ_ean = 0; return false; // zaden z powyzszych - blad, false na wyjsciu! } if ($typ_ean <>0) // jest 8,13,15 znakow! { for ($i=1; $i <= $typ_ean; $i++) { $tablica[$i] = substr($liczba,$i-1,1)*$j; if ($j == 3) $j=1; else $j=3; $suma = $suma+$tablica[$i]; } if ($suma%10 == 0) // szczegolny przypadek na reszte == 0 { if (($suma%10) == substr($liczba,$typ_ean,1)) return true; else return false; } else { if (10-($suma%10) == substr($liczba,$typ_ean,1)) return true; else return false; } } // koniec glownej petli if (na 7,13,15 znakow) } // koniec funkcji ?> To tyle. Jesli ktoś chce skrypt obliczający ostatnią cyfrę kontrolną, to można to na podstawie w/w zrobic podobnie lub napiszcie, bo to no problem. Pozdr. ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:49 |