(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_punct — Prüft auf Sonderzeichen, d. h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.
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.
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.
Gibt true
zurück, wenn alle Zeichen in text
druckbar sind, aber weder Buchstaben noch Ziffern noch Leerzeichen, sonst
false
.
Bei einem Aufruf mit einer leeren Zeichenkette wird immer false
zurückgegeben.
Beispiel #1 ctype_punct()-Beispiel
<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
if (ctype_punct($testcase)) {
echo "Der String $testcase enthält ausschließlich Sonderzeichen.\n";
} else {
echo "Der String $testcase enthält nicht nur Sonderzeichen.\n";
}
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der String ABasdk!@!$# enthält nicht nur Sonderzeichen. Der String !@ # $ enthält nicht nur Sonderzeichen. Der String *&$() enthält ausschließlich Sonderzeichen.