PHP: Hypertext Preprocessor (original) (raw)

ctype_xdigit

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

ctype_xdigit — Check for character(s) representing a hexadecimal digit

Description

Parameters

text

The tested string.

Note:

If an int 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.

Warning

As of PHP 8.1.0, passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to stringor an explicit call to chr() should be made.

Return Values

Returns [true](reserved.constants.php#constant.true) if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , [false](reserved.constants.php#constant.false) otherwise. When called with an empty string the result will always be [false](reserved.constants.php#constant.false).

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.

See Also

Found A Problem?

tom at hgmail dot com

19 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 = ltrim(colorCode=ltrim(colorCode, '#');

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

else return false;
}

`