PHP 8.4.1 Released!

ctype_space

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

ctype_spacePrüft auf Leerzeichen

Beschreibung

ctype_space(mixed $text): bool

Prüft, ob alle Zeichen in text irgendeine Art Leerzeichen erzeugen.

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 irgendeine Art Leerzeichen erzeugt, sonst false. Neben dem Leerzeichen gehören dazu auch Tabulator, vertikaler Tabulator, Zeilenvorschub, Wagenrücklauf und Seitenvorschub. Bei einem Aufruf mit einer leeren Zeichenkette wird immer false zurückgegeben.

Beispiele

Beispiel #1 ctype_space()-Beispiel

<?php
$strings
= array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // beachte die einfachen Anführungszeichen
);
foreach (
$strings as $name => $testcase) {
if (
ctype_space($testcase)) {
echo
"Der String '$name' besteht aus Leerzeichen.\n";
} else {
echo
"Der String '$name' enthält nicht nur Leerzeichen.\n";
}
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String 'string1' besteht aus Leerzeichen.
Der String 'string2' enthält nicht nur Leerzeichen.
Der String 'string3' enthält nicht nur Leerzeichen.

Siehe auch

  • ctype_cntrl() - Prüft auf Steuerzeichen
  • ctype_graph() - Prüft auf druckbare Zeichen (außer Leerzeichen)
  • ctype_punct() - Prüft auf Sonderzeichen, d. h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.
  • IntlChar::isspace() - Check if code point is a space character

add a note

User Contributed Notes 2 notes

up
6
gardnerjohng at hotmail dot com
15 years ago
A function I wrote last night was fairly flexible in terms of detecting whitespace, and even took into account the pesky non-breaking spaces / zero-width spaces further up the Unicode alphabet.

The benefit here was being able to isolate and identify specific Unicode indices based on their subrange.

<?php
// Returns TRUE if the ASCII value of $string matches a registered whitespace character.
// * This includes non-breaking spaces, zero-width spaces, and any unicode values below 32.
// * $string: Character to identify. If string extends past one character, the value
// is truncated and only the initial character is examined.
function is_whitespace($string){
// Return FALSE if passed an empty string.
if($string == "") return FALSE;

$char = ord($string);

// Control Characters
if($char < 33) return TRUE;
if(
$char > 8191 && $char < 8208) return TRUE;
if(
$char > 8231 && $char < 8240) return TRUE;

// Additional Characters
switch($char){
case
160: // Non-Breaking Space
case 8287: // Medium Mathematical Space
return TRUE;
break;
}
return
FALSE;
}
?>
up
2
vlabots at gmail dot com
10 years ago
thanks to gardnerjohng, but a had some problems with non-breaking spaces in this function.

I added 2 more cases for this:
case 0xC2
case 0xA0

After this modification non-breaking spaces in my test code were successfully detected.
To Top