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.
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
ctype_space — Check for whitespace character(s)
$text
)
Checks if all of the characters in the provided string,
text
, creates whitespace.
text
The tested string.
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.
Example #1 A ctype_space() example
<?php
$strings = array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // note the single quotes
);
foreach ($strings as $name => $testcase) {
if (ctype_space($testcase)) {
echo "The string '$name' consists of whitespace characters only.\n";
} else {
echo "The string '$name' contains non-whitespace characters.\n";
}
}
?>
Exemplul de mai sus va afișa:
The string 'string1' consists of whitespace characters only. The string 'string2' contains non-whitespace characters. The string 'string3' contains non-whitespace characters.
Notă:
Dacă e furnizat un integer cu valoarea între -128 și 255 inclusiv, el este interpretat ca o valoare ASCII a unui singur caracter (valorilor negative li se adaugă 256 pentru a permite caractere din domeniul ASCII extins). Orice alt întreg este interpretat ca un string conținând cifrele zecimale ale întregului.
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.
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;
}
?>