Sprawdzenie, czy wartość jest poprawnym numerem ISSN
Założenie: Napiszemy funkcję w PHP, która sprawdzi, czy podany ciąg znaków jest poprawnym numerem ISSN.
Krok po kroku:
- Utworzenie funkcji walidującej: Napiszemy funkcję, która przyjmuje numer ISSN jako argument i zwraca wartość logiczną (true/false) wskazującą na poprawność.
- Wyjaśnienie kodu: Funkcja najpierw oczyszcza numer ISSN z białych znaków i myślników. Następnie sprawdza długość i czy składa się tylko z cyfr. Główna część to algorytm weryfikacyjny, który oblicza ważoną sumę cyfr i sprawdza, czy jest podzielna przez 11.
- Użycie funkcji: Teraz możemy użyć funkcji do sprawdzenia poprawności numeru ISSN.
- Wyjaśnienie użycia: Kod pokazuje jak wywołać funkcję `isValidISSN()` i wyświetlić odpowiedni komunikat w zależności od wyniku.
function isValidISSN($issn) {
// Usuwamy spacje i myślniki
$issn = str_replace([' ', '-'], '', $issn);
// Sprawdzenie długości
if (strlen($issn) != 8) {
return false;
}
// Sprawdzenie, czy składa się tylko z cyfr
if (!ctype_digit($issn)) {
return false;
}
// Algorytm weryfikacyjny
$sum = 0;
for ($i = 0; $i < 8; $i++) {
$digit = $issn[$i];
$weight = ($i % 2 == 0) ? 8 - $i : 7 - $i;
$sum += $digit * $weight;
}
return ($sum % 11 == 0);
}
$issn = "1234-5670";
if (isValidISSN($issn)) {
echo "ISSN $issn jest poprawny.";
} else {
echo "ISSN $issn jest niepoprawny.";
}
Ten przykład pokazuje podstawy walidacji danych w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi metodami walidacji!