Sprawdzenie, czy wartość jest poprawnym numerem EAN (weryfikacja sumy kontrolnej)

Założenie: Napiszemy funkcję PHP, która sprawdzi, czy podany numer EAN jest poprawny poprzez weryfikację sumy kontrolnej.

Krok po kroku:

  1. Przygotowanie funkcji: Zdefiniujemy funkcję isValidEAN, która przyjmie numer EAN jako argument.
  2. 
    function isValidEAN(string $ean): bool {
      // ... (kod zostanie dodany w kolejnych krokach)
    }
    				
  3. Walidacja długości: Sprawdzimy, czy długość numeru EAN jest poprawna (8, 12 lub 13 cyfr).
  4. 
      $len = strlen($ean);
      if ($len !== 8 && $len !== 12 && $len !== 13) {
        return false;
      }
    				
  5. Obliczanie sumy kontrolnej: Obliczymy sumę kontrolną zgodnie z algorytmem EAN.
  6. 
      $sum = 0;
      for ($i = $len - 2; $i >= 0; $i--) {
        $digit = intval($ean[$i]);
        $sum += ($i % 2 === 0) ? $digit * 3 : $digit;
      }
    				
  7. Weryfikacja sumy kontrolnej: Porównamy obliczoną sumę z cyfrą kontrolną.
  8. 
      $checkDigit = intval($ean[$len - 1]);
      $checkSum = 10 - ($sum % 10);
      return $checkSum === $checkDigit || ($checkSum === 10 && $checkDigit === 0);
    }
    				
  9. Testowanie funkcji: Sprawdzimy działanie funkcji z przykładowymi numerami EAN.
  10. 
    $ean1 = "9788324732145"; // Poprawny EAN-13
    $ean2 = "12345678"; // Poprawny EAN-8
    $ean3 = "1234567890123"; // Poprawny EAN-13
    $ean4 = "1234567"; // Niepoprawny EAN
    
    var_dump(isValidEAN($ean1)); // true
    var_dump(isValidEAN($ean2)); // true
    var_dump(isValidEAN($ean3)); // true
    var_dump(isValidEAN($ean4)); // false
    				

Pamiętaj, że ten przykład pokazuje podstawy weryfikacji numerów EAN. W rzeczywistych aplikacjach warto rozważyć bardziej zaawansowane metody walidacji.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *