ctype_xdigit
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_xdigit — 检测字符串是否只包含十六进制字符
说明
ctype_xdigit(string
$text
): bool
检查 string 和 text
里面的字符是不是都是十六进制字符串。
参数
-
text
-
需要被测试的字符串。
返回值
如果 text
里面的每个字符都是十六进制字符,也就是只能包含十进制的数值和 [A-Fa-f]
的字母,则返回 true
。否则返回 false
。
范例
示例 #1 一个 ctype_xdigit() 的例子
<?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 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.
注释
注意:
如果给出一个 -128 到 255 之间(含)的int, 将会被解释为该值对应的ASCII字符 (负值将加上 256 以支持扩展ASCII字符). 其它整数将会被解释为该值对应的十进制字符串.

User Contributed Notes 1 note
tom at hgmail dot com ¶
16 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;
}
备份地址:http://www.lvesu.com/blog/php/function.ctype-xdigit.php