ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_space检查空格字符

描述

ctype_space(混合 $text): 布尔值

检查提供的 字符串 text 中的所有字符是否都构成空格。

参数

text

要测试的字符串。

注意:

如果提供了 -128 到 255(含)之间的 整数,则将其解释为单个字符的 ASCII 值(负值添加 256 以允许扩展 ASCII 范围内的字符)。任何其他整数都被解释为包含整数十进制数字的字符串。

警告

从 PHP 8.1.0 开始,传递非字符串参数已被弃用。在将来,参数将被解释为字符串而不是 ASCII 代码点。根据预期的行为,参数应该要么被转换为 字符串,要么显式调用 chr()

返回值

如果 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
"字符串 '$name' 仅包含空格字符。\n";
} else {
echo
"字符串 '$name' 包含非空格字符。\n";
}
}
?>

上面的示例将输出

The string 'string1' consists of whitespace characters only.
The string 'string2' contains non-whitespace characters.
The string 'string3' contains non-whitespace characters.

参见

添加说明

用户贡献的说明 2 条说明

gardnerjohng at hotmail dot com
14 年前
我昨晚写的一个函数在检测空格方面非常灵活,甚至还考虑到了 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;
}
?>
vlabots at gmail dot com
10 年前
感谢 gardnerjohng,但是我在这个函数中遇到了一些关于不可分解空格的问题。

我为此添加了 2 个更多情况
case 0xC2
case 0xA0

在进行此修改之后,我的测试代码中的不可分解空格成功被检测到。
To Top