我昨晚写的一个函数在检测空格方面非常灵活,甚至还考虑到了 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;
}
?>