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

PHPのIntlChar::isprint()関数の使い方!文字が印刷可能かどうかを判定する方法

IntlChar::isprint()関数は、指定された文字が印刷可能な文字(printable character)であるかどうかを判定する関数です。PHPの国際化対応のための拡張モジュール「Intl」に含まれており、制御文字のように画面に表示されない文字を判別したい場合に役立ちます。

構文

IntlChar::isprint( val )

パラメータ

  • val ― 判定対象となる整数値(Unicodeコードポイント)、またはUTF-8でエンコードされた1文字の文字列を指定します。この引数は必須です。

戻り値

val が印刷可能な文字であれば TRUE を返します。印刷可能な文字でない場合は FALSE、引数として複数文字の文字列を渡すなどして判定できなかった場合には NULL が返されます。

サンプルコード①

まずは基本的な使用例から見ていきましょう。

<?php
    var_dump(IntlChar::isprint("Kites"));
    echo "<br>";
    var_dump(IntlChar::isprint("&"));
    echo "<br>";
    var_dump(IntlChar::isprint("K"));
?>

出力結果

NULL
bool(true)
bool(true)

「Kites」のように複数の文字を含む文字列を渡すと NULL が返ります。これは、IntlChar::isprint() が判定対象を1文字(1つのコードポイント)として扱うためです。一方、「&」や「K」のような1文字の文字列は印刷可能な文字と判定され、TRUE が返ります。

サンプルコード②

続いて、数字を含む文字列を渡した場合の動作を確認してみましょう。

<?php
    var_dump(IntlChar::isprint("1234"));
    echo "<br>";
    var_dump(IntlChar::isprint("1"));
    echo "<br>";
    var_dump(IntlChar::isprint("hvhj165e615"));
?>

出力結果

NULL
bool(true)
NULL

数字の「1」は印刷可能な文字であるため TRUE が返ります。一方、「1234」や「hvhj165e615」のように複数文字からなる文字列は、単一のコードポイントとして評価できないため NULL となります。

まとめ

  • IntlChar::isprint() は、指定した文字が印刷可能な文字かどうかを判定する関数
  • 引数には整数(コードポイント)またはUTF-8エンコードされた1文字の文字列を指定する
  • 戻り値は TRUE(印刷可能)/FALSE(印刷不可能)/NULL(判定不可)のいずれか
  • 複数文字の文字列を渡すと NULL が返るため、1文字ずつ判定するのがポイント
  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::isprint()関数の使い方!文字が印刷可能かどうかを判定する方法

    IntlChar::isprint()関数は、指定された文字が印刷可能な文字(printable character)であるかどうかを判定する関数です。PHPの国際化対応のための拡張モジュール「Intl」に含まれており、制御文字のように画面に表示されない文字を判別したい場合に役立ちます。 構文 IntlChar::isprint( val ) パラメータ val ― 判定対象となる整数値(Unicodeコードポイント)、またはUTF-8でエンコードされた1文字の文字列を指定します。この引数は必須です。 戻り値 val が印刷可能な文字であれば TRUE を返します。印刷可能な文字でない場合