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;
}
?>
ctype_space
(PHP 4 >= 4.0.4, PHP 5)
ctype_space — Auf Leerzeichen überprüfen
Description
bool ctype_space
( string $text
)
Prüft ob jedes Zeichen in text irgendeine Art Leerzeichen erzeugt. Neben dem eigentlichen Leerzeichen schließt das auch TAB, Zeilenforschub, Carriage Return und Formularvorschub mit ein.
Parameter-Liste
- text
-
Der zu prüfende String.
Rückgabewerte
Liefert TRUE wenn jedes Zeichen in text ein Leerzeichen ist (space, tab, linefeed ...), sonst FALSE.
Beispiele
Beispiel #1 ctype_space() Beispiel
<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
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() - Auf Steuerzeichen überprüfen
- ctype_graph() - Auf druckbare Zeichen (außer Leerzeichen) überprüfen
- ctype_punct() - Prüft auf Sonderzeichem, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.
ctype_space
gardnerjohng at hotmail dot com
15-Sep-2009 04:00
15-Sep-2009 04:00
per dot zut at gmail dot com
22-Jul-2008 07:48
22-Jul-2008 07:48
The contradiction bellow brutaly forced me to do some testing.
ctype_space(""), as well as ctype_space(NULL), returns false
ctype_space(), returns NULL, with a warning
(PHP Version 4.4.8)
