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 int w zakresie -128..255 było interpretowane jako kod ASCII — np. ctype_xdigit(48) sprawdzało znak '0' (kod 48) i zwracało true. Od PHP 8.1 takie wywołanie generuje E_DEPRECATED. Zawsze przekazuj ciąg znaków, np. ctype_xdigit((string) $zmienna).

📘 Naucz się w lekcji →