ctype_xdigit în PHP

Verifică dacă un text conține doar cifre hexazecimale (0-9, a-f, A-F).

Sintaxă
ctype_xdigit(mixed $text): bool

Ce face ctype_xdigit

ctype_xdigit returnează true dacă fiecare caracter este o cifră sau o literă de la a la f (mare sau mică). Este utilă pentru culori HTML, token-uri generate cu bin2hex sau sume de control (MD5, SHA).

Un text gol dă false. Prefixe ca # sau 0x trebuie eliminate înainte.

Parametri

Parametru Descriere
$text Textul verificat.

Ce returnează

true dacă textul nu este gol și are doar cifre hexazecimale.

Exemple

Exemplul 1: Culori HTML

<?php
foreach (["#1a2B3c", "#fff", "#12345g", "#"] as $culoare) {
    $hex = ltrim($culoare, "#");
    $valid = ctype_xdigit($hex) && in_array(strlen($hex), [3, 6]);
    echo "$culoare => " . ($valid ? "validă" : "invalidă") . "\n";
}

Rezultat

#1a2B3c => validă
#fff => validă
#12345g => invalidă
# => invalidă

Exemplul 2: Token primit într-un link

<?php
$token = "9f86d081884c7d659a2feaa0c55ad015";

var_dump(strlen($token) === 32 && ctype_xdigit($token));

Rezultat

bool(true)

Greșeli frecvente

  • Verifici o culoare cu # în față și primești mereu false. Elimină întâi #.

Comenzi înrudite

  • ctype_digit: Verifică dacă un text conține doar cifre (0-9).
  • bin2hex / hex2bin: bin2hex transformă un text (sau date binare) în cifre hexazecimale, iar hex2bin face inversul.
  • ctype_alnum: Verifică dacă un text conține doar litere și cifre, fără spații sau alte semne.