note 93533 modified in function.ctype-space by danbrown
| From: | danbrown@php.net | Date: | Tue, 15 Sep 2009 04:04:47 +0000 |
| Subject: | note 93533 modified in function.ctype-space by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-160569@lists.php.net to get a copy of this message | ||
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;
}
?>
--was--
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;
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;
}
http://php.net/manual/en/function.ctype-space.php