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;
}
ctype_xdigit
(PHP 4 >= 4.0.4, PHP 5)
ctype_xdigit — Auf Hexadezimalziffern überprüfen
Beschreibung
$text
)
Prüft jedes Zeichen in text
eine Hexadezimalziffer ist, also eine Dezimalziffer oder ein Zeichen aus
[A-Fa-f].
Parameter-Liste
-
text -
Der zu prüfende String.
Rückgabewerte
Liefert TRUE wenn jedes Zeichen in text
eine Hexadezimalziffer ist, sonst FALSE.
Beispiele
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.
Anmerkungen
Hinweis:
Wenn ein integer zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des Erweiterten ASCII Zeichensatzes zu erlauben). Alle anderen Integer werden wie ein String interpretiert, welcher die dezimalen Ziffern des Integers enthält.
