ctype_alnum
funkcja
Sprawdza, czy wszystkie znaki w ciągu to litery lub cyfry (A–Z, a–z, 0–9). Nie obsługuje znaków spoza ASCII, w tym polskich liter.
ctype_alnum(mixed $text): bool
ctype_alnum zwraca true, gdy każdy znak ciągu to litera ASCII (A–Z, a–z) lub cyfra (0–9). Pusty ciąg zwraca false. To szybki sposób na sprawdzenie, czy tekst nie zawiera znaków specjalnych, spacji ani interpunkcji — np. przy walidacji nazwy użytkownika lub tokenu.
<?php
declare(strict_types=1);
$login = $_POST['login'] ?? '';
if (!ctype_alnum($login) || strlen($login) < 3 || strlen($login) > 20) {
echo 'Login może zawierać tylko litery i cyfry (3–20 znaków).';
exit;
}
// Bezpieczny login: tylko litery i cyfry ASCII
echo 'Login ' . htmlspecialchars($login) . ' jest prawidłowy.';
Kilka wyników do zapamiętania:
var_dump(ctype_alnum('abc123')); // bool(true)
var_dump(ctype_alnum('abc!')); // bool(false) — znak specjalny
var_dump(ctype_alnum('łódź')); // bool(false) — polskie litery to nie ASCII
var_dump(ctype_alnum('')); // bool(false) — pusty ciąg
Pułapka z liczbami całkowitymi. Przekazanie
intzamiaststringbyło historycznie interpretowane jako kod ASCII. Od PHP 8.1 generujeE_DEPRECATED. Używaj wyłącznie ciągów znaków.