ctype_space()
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
做空白字符检测
说明
ctype_space(string $text): bool
检查提供的string和$text里面的字符是否包含空白。
参数
- $text
需要被测试的字符串。
返回值
如果$text里面的每个字符最终被实际输出的时候都是某种形式的空白,就返回TRUE
;否则返回FALSE
。除了空白字符,还包括缩进,垂直制表符,换行符,回车和换页字符。
范例
一个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 all whitespace characters.\n"; } else { echo "The string '$name' does not consist of all whitespace characters.\n"; } } ?>
以上例程会输出:
The string 'string1' consists of all whitespace characters. The string 'string2' does not consist of all whitespace characters. The string 'string3' does not consist of all whitespace characters.
注释
Note:如果给出一个-128 到 255 之间(含)的整数,将会被解释为该值对应的ASCII字符(负值将加上 256 以支持扩展ASCII字符).其它整数将会被解释为该值对应的十进制字符串.
参见
ctype_cntrl()
做控制字符检测ctype_graph()
做可打印字符串检测,空格除外ctype_punct()
检测可打印的字符是不是不包含空白、数字和字母
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; } ?>
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.