PHP 8.4.2 Released!

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_xdigitПроверяет шестнадцатеричные цифры

Описание

ctype_xdigit(mixed $text): bool

Проверяет, состоит ли переданная строка (string) text только из шестнадцатеричных «цифр».

Список параметров

text

Проверяемая строка.

Замечание:

Функция интерпретирует целое число (int) как ASCII-значение одного символа, если передали целое число в диапазоне между -128 и 255 включительно; к отрицательным значениям добавляется 256, чтобы разрешить символы из диапазона кодировки Extended ASCII. Остальные целые числа обрабатываются как строки, которые содержат десятичные цифры целого числа.

Внимание

Начиная с PHP 8.1.0 передача нестроковых аргументов устарела. В будущем аргумент вместо ASCII-кода будет интерпретироваться как строка. В зависимости от предполагаемого поведения аргумент либо преобразовывают в строку (string), либо вызывают функцию chr().

Возвращаемые значения

Возвращает true, если каждый символ строки text — это шестнадцатеричная «цифра», то есть десятичная цифра или символ из диапазона [A-Fa-f], иначе false. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #1 Пример использования функции ctype_xdigit()

<?php

$strings
= array('AB10BC99', 'AR1012', 'ab12bc99');
foreach (
$strings as $testcase) {
if (
ctype_xdigit($testcase)) {
echo
"Строка $testcase состоит из шестнадцатеричных цифр.\n";
} else {
echo
"Строка $testcase состоит не только из шестнадцатеричных цифр.\n";
}
}
?>

Результат выполнения приведённого примера:

Строка AB10BC99 состоит из шестнадцатеричных цифр.
Строка AR1012 состоит не только из шестнадцатеричных цифр.
Строка ab12bc99 состоит из шестнадцатеричных цифр.

Смотрите также

  • ctype_digit() - Проверяет цифровые символы
  • IntlChar::isxdigit() - Проверяет, относится ли кодовая точка к шестнадцатеричной цифре

Добавить

Примечания пользователей 1 note

up
22
tom at hgmail dot com
18 years ago
This function shows its usefulness on a web site where a user is asked to entered a hexidecimal color code for a color. To prevent breaking W3C standard and having them enter in "neon-green" or the wrong type of code like 355511235.

In conjunction with strlen() you could create a function like this:

function check_valid_colorhex($colorCode) {
// If user accidentally passed along the # sign, strip it off
$colorCode = ltrim($colorCode, '#');

if (
ctype_xdigit($colorCode) &&
(strlen($colorCode) == 6 || strlen($colorCode) == 3))
return true;

else return false;
}
To Top