我昨晚编写的函数在检测空白方面相当灵活,甚至考虑了 Unicode 字母表中更靠前的令人讨厌的不间断空格/零宽空格。
此处的优点是能够根据其子范围隔离和识别特定的 Unicode 索引。
<?php
// 如果 $string 的 ASCII 值与已注册的空白字符匹配,则返回 TRUE。
// * 这包括不间断空格、零宽空格和任何低于 32 的 unicode 值。
// * $string:要识别的字符。如果字符串超过一个字符,则该值
// 被截断,并且仅检查初始字符。
function is_whitespace($string){
// 如果传递空字符串,则返回 FALSE。
if($string == "") return FALSE;
$char = ord($string);
// 控制字符
if($char < 33) return TRUE;
if($char > 8191 && $char < 8208) return TRUE;
if($char > 8231 && $char < 8240) return TRUE;
// 其他字符
switch($char){
case 160: // 不间断空格
case 8287: // 中等数学空格
return TRUE;
break;
}
return FALSE;
}
?>