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