PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのIntlChar::iscntrl()関数の使い方を解説

PHPのIntlChar::iscntrl()関数は、指定された入力値が制御文字であるかどうかを判定するための関数です。制御文字の代表例としては、改行(\n)、タブ(\t)、キャリッジリターン(\r)などが挙げられます。

なお、IntlCharクラスを利用するには、PECLのintl拡張モジュールがサーバーにインストールされている必要があります。

構文

IntlChar::iscntrl( val )

パラメータ

  • val − 判定対象となる整数値、またはUTF-8文字列としてエンコードされた1文字。

戻り値

IntlChar::iscntrl()関数は、引数valが制御文字であればtrueを返します。制御文字でない場合はfalseを返し、単一のコードポイントとして評価できない無効な入力が渡された場合はNULLを返します。

以下に基本的な使用例を示します。

<?php
   var_dump(IntlChar::iscntrl("\n"));
   echo "<br>";
   var_dump(IntlChar::iscntrl("ahjh"));
   echo "<br>";
   var_dump(IntlChar::iscntrl("12345"));
?>

出力結果

bool(true)
NULL
NULL

この例では、改行文字「\n」は制御文字に該当するためbool(true)が返されています。一方、「ahjh」や「12345」のように複数文字からなる文字列は、単一のコードポイントとして解釈できないため、NULLが返される点に注意してください。

別の例

続いて、入力値が制御文字かどうかを判定するもう一つの例を見てみましょう。

<?php
   var_dump(IntlChar::iscntrl("\r"));
   echo "<br>";
   var_dump(IntlChar::iscntrl("878"));
   echo "<br>";
?>

出力結果

bool(true)
NULL

キャリッジリターン「\r」も制御文字の一種であるためtrueが返されます。一方、「878」という複数文字の文字列に対してはNULLが返されることが確認できます。

まとめ

IntlChar::iscntrl()関数を使えば、Unicodeの制御文字を簡単に判別できます。ただし、判定できるのは1文字(単一のコードポイント)のみであり、複数文字の文字列を渡すとNULLが返るという仕様を理解しておくことが重要です。

  1. PHPのIntlChar::isIDStart()関数とは?使い方とサンプルコードを解説

    IntlChar::isIDStart() 関数は、指定された文字が識別子(identifier)の先頭の文字として使用できるかどうかを判定するための関数です。変数名やクラス名など、PHPにおける識別子の命名規則をチェックしたい場合に役立ちます。 構文 bool IntlChar::isIDStart(val) パラメータ val − UTF-8文字列としてエンコードされた1文字、または整数値(Unicodeコードポイント)を指定します。 戻り値 引数 val が識別子の先頭文字として有効な場合は TRUE(bool(true)) を返し、無効な場合は FALSE(bool(false))

  2. PHPのIntlChar::iscntrl()関数の使い方を解説

    PHPのIntlChar::iscntrl()関数は、指定された入力値が制御文字であるかどうかを判定するための関数です。制御文字の代表例としては、改行(\n)、タブ(\t)、キャリッジリターン(\r)などが挙げられます。なお、IntlCharクラスを利用するには、PECLのintl拡張モジュールがサーバーにインストールされている必要があります。構文IntlChar::iscntrl( val )パラメータval − 判定対象となる整数値、またはUTF-8文字列としてエンコードされた1文字。戻り値IntlChar::iscntrl()関数は、引数valが制御文字であればtrueを返します。制御文