ctype_xdigit
(PHP 4 >= 4.0.4, PHP 5)
ctype_xdigit — Проверяет наличие шестнадцатиричных цифр
Описание
$text
)
Проверяет, являются ли все символы в строке text
шестнадцатиричными 'цифрами'.
Список параметров
-
text
-
Проверяемая строка.
Возвращаемые значения
Возвращает TRUE
если каждый символ строки text
является
шестнадцатиричной 'цифрой', то есть десятичной цифрой либо символом из диапазона
[A-Fa-f], в обратном случае возвращает 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 состоит из шестнадцатиричных цифр.
Примечания
Замечание:
Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.
Коментарии
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;
}
this can be used with great results if you wanna check for something like
"Tobias2" whether there is a number at the end of the string. (F.e. courselist with coursenames etc.)
Just substring the last char and put it in the function.
We should be glad about every possibility to cut out these damn regexes from our code. NEVER USE REGEX