ctype_xdigit
funkcja
Sprawdza, czy wszystkie znaki w ciągu to cyfry szesnastkowe: 0–9, a–f oraz A–F.
ctype_xdigit(mixed $text): bool
ctype_xdigit zwraca true, gdy każdy znak podanego ciągu jest prawidłową cyfrą szesnastkową — czyli należy do zestawu 0-9, a-f lub A-F. Pusta wartość zwraca false. Funkcja jest szybka i czytelna przy walidacji tokenów hex, kolorów CSS bez # czy skrótów SHA. Pamiętaj, że nie akceptuje prefiksu 0x — sprawdzaj samą część liczbową.
<?php
declare(strict_types=1);
$token = 'a3F1c8';
if (!ctype_xdigit($token)) {
http_response_code(400);
echo 'Nieprawidłowy token hex.';
exit;
}
// Bezpiecznie: $token to poprawna wartość szesnastkowa
echo strtolower($token); // a3f1c8
Pułapka z liczbami całkowitymi. Przed PHP 8.1 przekazanie
intw zakresie -128..255 było interpretowane jako kod ASCII — np.ctype_xdigit(48)sprawdzało znak'0'(kod 48) i zwracałotrue. Od PHP 8.1 takie wywołanie generujeE_DEPRECATED. Zawsze przekazuj ciąg znaków, np.ctype_xdigit((string) $zmienna).