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

ctype_spaceCheck for whitespace character(s)


ctype_space(mixed $text): bool

Checks if all of the characters in the provided string, text, creates whitespace.



The tested string.


If an int between -128 and 255 inclusive is provided, it is interpreted as the ASCII value of a single character (negative values have 256 added in order to allow characters in the Extended ASCII range). Any other integer is interpreted as a string containing the decimal digits of the integer.


As of PHP 8.1.0, passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to string or an explicit call to chr() should be made.

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. When called with an empty string the result will always be false.


Example #1 A ctype_space() example

= array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // note the single quotes
foreach (
$strings as $name => $testcase) {
if (
ctype_space($testcase)) {
"The string '$name' consists of whitespace characters only.\n";
} else {
"The string '$name' contains non-whitespace characters.\n";

The above example will output:

The string 'string1' consists of whitespace characters only.
The string 'string2' contains non-whitespace characters.
The string 'string3' contains non-whitespace characters.

See Also

add a note

User Contributed Notes 2 notes

gardnerjohng at hotmail dot com
14 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.

// 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;
$char > 8191 && $char < 8208) return TRUE;
$char > 8231 && $char < 8240) return TRUE;

// Additional Characters
160: // Non-Breaking Space
case 8287: // Medium Mathematical Space
return TRUE;
vlabots at gmail dot com
9 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