文字

ctype_space

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

ctype_space做空白字符检测

说明

bool ctype_space ( string $text )

检查提供的 string text 里面的字符是否包含空白。

参数

text

需要被测试的字符串。

返回值

如果 text 里面的每个字符最终被实际输出的时候都是某种形式的空白,就返回 TRUE ;否则返回 FALSE 。 除了空白字符,还包括缩进,垂直制表符,换行符,回车和换页字符。

范例

Example #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 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() - 检测可打印的字符是不是不包含空白、数字和字母

用户评论:

[#1] vlabots at gmail dot com [2014-06-18 07:03:22]

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.

[#2] gardnerjohng at hotmail dot com [2009-09-14 21:00:01]

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;
    }
?>

上一篇: 下一篇: