该扩展所提供的函数用来检测在当前的区域设定下,一个字符或者字符串是否仅包含指定类型的字符。

当传入参数为字符串的时候,它会对字符串中的每个字符进行检测,仅当字符串中的每个字符都符合指定条件的情况下才会返回 TRUE。

注意:如果可以满足需求,请优先考虑使用 ctype 函数,而不是正则表达式或者对应的 “str_*” 和 “is_*” 函数。因为 ctype 使用的是原生 C 库,所以会有明显的性能优势。

  • ctype_alnum — 做字母和数字字符检测

  • ctype_alpha — 做纯字符检测

  • ctype_cntrl — 做控制字符检测

  • ctype_digit — 做纯数字检测

    虽然说这个是纯数字检测,但如果给出一个 -128 到 255 之间(含)的整数, 将会被解释为该值对应的ASCII字符 (负值将加上 256 以支持扩展ASCII字符)。

    $numeric_string = '42';
    $integer        = 42;
    
    ctype_digit($numeric_string);  // true
    ctype_digit($integer);         // false (ASCII 42 is the * character)
    
    is_numeric($numeric_string);   // true
    is_numeric($integer);          // true
    

    所以纯数字的检测,建议采用is_int、is_numeric进行检测。

  • ctype_graph — 做可打印字符串检测,空格除外

  • ctype_lower — 做小写字符检测

  • ctype_print — 做可打印字符检测

  • ctype_punct — 检测可打印的字符是不是都是标点符号

  • ctype_space — 做空白字符检测

  • ctype_upper — 做大写字母检测

  • ctype_xdigit — 检测字符串是否只包含十六进制字符