ctype_xdigit
(PHP 4 >= 4.0.4, PHP 5)
ctype_xdigit — Check for character(s) representing a hexadecimal digit
Description
$text
)
Checks if all of the characters in the provided string,
text
, are hexadecimal 'digits'.
Parameters
-
text
-
The tested string.
Return Values
Returns TRUE
if every character in text
is
a hexadecimal 'digit', that is a decimal digit or a character from
[A-Fa-f] , FALSE
otherwise.
Examples
Example #1 A ctype_xdigit() example
<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
if (ctype_xdigit($testcase)) {
echo "The string $testcase consists of all hexadecimal digits.\n";
} else {
echo "The string $testcase does not consist of all hexadecimal digits.\n";
}
}
?>
The above example will output:
The string AB10BC99 consists of all hexadecimal digits. The string AR1012 does not consist of all hexadecimal digits. The string ab12bc99 consists of all hexadecimal digits.
Notes
Note:
If an integer between -128 and 255 inclusive is provided, it is interpreted as the ASCII value of a single character (negative values have 256 added in order to allow characters in the Extended ASCII range). Any other integer is interpreted as a string containing the decimal digits of the integer.
Коментарии
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;
}