• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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字符).其它整数将会被解释为该值对应的十进制字符串.

    参见

    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.

    上篇:ctype_punct()

    下篇:ctype_upper()