ctype_space
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_space — 检测空白字符
参数
返回值
如果 text
里面的每个字符都创建某种形式的空白,那么就返回
true
;否则返回 false
。除了空白字符,还包括制表符、垂直制表符、换行符、回车和换页符。当使用空字符串调用时,结果始终为 false
。
示例
示例 #1 ctype_space() 示例
<?php
$strings = array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // 注意单引号
);
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";
}
}
?>
以上示例会输出:
The string 'string1' consists of whitespace characters only. The string 'string2' contains non-whitespace characters. The string 'string3' contains non-whitespace characters.
参见
- ctype_cntrl() - 检测控制字符
- ctype_graph() - 检测除空格外的任何打印字符
- ctype_punct() - 检测可打印的字符是不是不包含空白、数字和字母
- IntlChar::isspace() - Check if code point is a space character
+添加备注
用户贡献的备注 2 notes
gardnerjohng at hotmail dot com ¶
15 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.
<?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;
}
?>
vlabots at gmail dot com ¶
10 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.