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:

  1. Krok 1: Funkcja sprawdzająca ISBN. Utworzymy funkcję, która przyjmuje numer ISBN jako argument i zwraca wartość logiczną (true/false).
  2. 
    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
    }
    				
  3. Krok 2: Testowanie funkcji. Sprawdźmy, czy funkcja działa poprawnie.
  4. 
    $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";
    				
  5. Krok 3: Zastosowanie w formularzu. Można w prosty sposób wykorzystać tę funkcję do walidacji danych z formularza.

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.

Dodaj komentarz 0

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