PHP 8.4.1 Released!

ctype_xdigit

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

ctype_xdigitPrüft auf Zeichen, die eine Hexadezimalziffer darstellen

Beschreibung

ctype_xdigit(mixed $text): bool

Prüft, ob alle Zeichen in text hexadezimale "Ziffern" sind.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int 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 eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Warnung

Seit PHP 8.1.0 ist die Übergabe eines Nicht-String-Arguments veraltet. In Zukunft wird das Argument statt als ASCII-Codepunkt als String interpretiert werden. Je nach beabsichtigtem Verhalten sollte das Argument entweder in String umgewandelt werden, oder es sollte ein expliziter Aufruf von chr() erfolgen.

Rückgabewerte

Gibt true zurück, wenn jedes Zeichen in text eine hexadezimale "Ziffer" ist, d. h. eine Dezimalziffer oder ein Zeichen aus [A-Fa-f], sonst false. Bei einem Aufruf mit einer leeren Zeichenkette wird immer false zurückgegeben.

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.

Siehe auch

add a note

User Contributed Notes 2 notes

up
20
tom at hgmail dot com
18 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;
}
up
0
Anonymous
1 year ago
this can be used with great results if you wanna check for something like

"Tobias2" whether there is a number at the end of the string. (F.e. courselist with coursenames etc.)

Just substring the last char and put it in the function.
We should be glad about every possibility to cut out these damn regexes from our code. NEVER USE REGEX
To Top