Sprawdzenie, czy wartość jest poprawnym numerem ISBN
Założenie: Napiszemy funkcję w PHP, która sprawdzi, czy podany ciąg znaków jest poprawnym numerem ISBN.
Krok po kroku:
- Krok 1: Funkcja sprawdzająca ISBN. Utworzymy funkcję, która przyjmuje numer ISBN jako argument i zwraca wartość logiczną (true/false).
- Krok 2: Testowanie funkcji. Sprawdźmy, czy funkcja działa poprawnie.
- Krok 3: Zastosowanie w formularzu. Można w prosty sposób wykorzystać tę funkcję do walidacji danych z formularza.
function isValidISBN(string $isbn): bool {
// Usuwamy spacje i myślniki
$isbn = str_replace([' ', '-'], '', $isbn);
// Sprawdzenie długości ISBN
if (strlen($isbn) !== 10 && strlen($isbn) !== 13) {
return false;
}
// Algorytm weryfikacyjny dla ISBN-10
if (strlen($isbn) === 10) {
$sum = 0;
for ($i = 0; $i < 10; $i++) {
$sum += $isbn[$i] * (10 - $i);
}
return $sum % 11 === 0;
}
// Algorytm weryfikacyjny dla ISBN-13
if (strlen($isbn) === 13) {
$sum = 0;
for ($i = 0; $i < 12; $i++) {
$sum += ($i % 2 === 0) ? $isbn[$i] : $isbn[$i] * 3;
}
return (10 - ($sum % 10)) % 10 === intval($isbn[12]);
}
return false; // Powinno być nieosiągalne, ale dodajemy dla bezpieczeństwa
}
$isbn10 = "978-0321765723";
$isbn13 = "0321765723";
$isbnInvalid = "1234567890";
echo "ISBN-13 ('" . $isbn13 . "'): " . (isValidISBN($isbn13) ? 'prawidłowy' : 'nieprawidłowy') . "\n";
echo "ISBN-10 ('" . $isbn10 . "'): " . (isValidISBN($isbn10) ? 'prawidłowy' : 'nieprawidłowy') . "\n";
echo "ISBN nieprawidłowy ('" . $isbnInvalid . "'): " . (isValidISBN($isbnInvalid) ? 'prawidłowy' : 'nieprawidłowy') . "\n";
Pamiętaj, aby dostosować kod do swojego formularza i sposobu pobierania danych.
Ten przykład pokazuje podstawy walidacji danych w PHP. Zachęcamy do dalszego zgłębiania tematu i poznawania bardziej zaawansowanych technik walidacji.