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 — Check for whitespace character(s)
Description
bool ctype_space
( string $text
)
Checks if all of the characters in the provided string, text , creates whitespace.
Parameters
- text
-
The tested string.
Return Values
Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.
Examples
Example #1 A ctype_space() example
<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
if (ctype_space($testcase)) {
echo "The string '$name' consists of all whitespace characters.\n";
} else {
echo "The string '$name' does not consist of all whitespace characters.\n";
}
}
?>
The above example will output:
The string 'string1' consists of all whitespace characters. The string 'string2' does not consist of all whitespace characters. The string 'string3' does not consist of all whitespace characters.
See Also
- ctype_cntrl() - Check for control character(s)
- ctype_graph() - Check for any printable character(s) except space
- ctype_punct() - Check for any printable character which is not whitespace or an alphanumeric character
ctype_space
gardnerjohng at hotmail dot com
15-Sep-2009 06:00
15-Sep-2009 06:00
per dot zut at gmail dot com
22-Jul-2008 09:48
22-Jul-2008 09: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)
