ScotlandPHP

ctype_space

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

ctype_space空白文字かどうか調べる

説明

bool ctype_space ( string $text )

与えられた文字列 text のすべての文字が 空白文字であるかどうかを調べます。

パラメータ

text

調べる文字列。

返り値

text のすべての文字がなんらかの空白文字を 生成する場合に TRUE 、そうでない場合に 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 
"The string '$name' consists of whitespace characters only.\n";
    } else {
        echo 
"The string '$name' contains non-whitespace characters.\n";
    }
}
?>

上の例の出力は以下となります。

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

注意

注意:

-128 から 255 までの整数値を渡すと、ひとつの文字の ASCII 値とみなします (負の値には 256 を足して、拡張 ASCII の範囲に収まるようにします)。 それ以外の整数値は、10 進数を含む文字列とみなします。

参考

  • ctype_cntrl() - 制御文字かどうかを調べる
  • ctype_graph() - 空白以外の印字可能な文字かどうかを調べる
  • ctype_punct() - 空白、英数字以外の出力可能な文字かどうかを調べる

add a note add a note

User Contributed Notes 2 notes

up
2
vlabots at gmail dot com
3 years ago
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.
up
1
gardnerjohng at hotmail dot com
8 years ago
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;
    }
?>
To Top