(PHP 4 >= 4.0.4, PHP 5)
ctype_xdigit — Auf Hexadezimalziffern überprüfen
Prüft jedes Zeichen in text eine Hexadezimalziffer ist, also eine Dezimalziffer oder ein Zeichen aus [A-Fa-f].
Der zu prüfende String.
Liefert TRUE wenn jedes Zeichen in text eine Hexadezimalziffer ist, sonst FALSE.
Beispiel #1 ctype_xdigit() Beispiel
<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
if (ctype_xdigit($testcase)) {
echo "Der String $testcase besteht aus Hexadezimalziffern.\n";
} else {
echo "Der String $testcase enthält nicht nur Hexadezimalziffern.\n";
}
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der String AB10BC99 besteht aus Hexadezimalziffern. Der String AR1012 enthält nicht nur Hexadezimalziffern. Der String ab12bc99 besteht aus Hexadezimalziffern.
This is the function in php form if your php is older than 4.0.4
<?php
if(!function_exists("ctype_xdigit")){
function ctype_xdigit($string = ""){
return !strlen( trim( $string, "1234567890abcdefABCDEF" ) );
}/* endfunction ctype_xdigit */
}/* endif not function_exists ctype_xdigit */
?>
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;
}