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

PHPのIntlChar::charType()関数とは?文字の一般カテゴリを取得する方法

PHPのIntlChar::charType()関数は、指定された値(文字またはコードポイント)に対応するUnicodeの「一般カテゴリ(General Category)」の値を取得するための関数です。これにより、対象の文字が英字・数字・句読点・制御文字などのどの分類に属するのかをプログラムから簡単に判定できます。

構文

int IntlChar::charType ( val )

パラメータ

  • val − 判定対象の整数値、またはUTF-8文字列としてエンコードされた文字。文字列を指定した場合は先頭の1文字が評価の対象となります。

戻り値

IntlChar::charType()関数は、入力された文字の種類に応じて、以下の一般カテゴリ定数のいずれかを整数値として返します。

  • IntlChar::CHAR_CATEGORY_UNASSIGNED − 未割り当てのコードポイント

  • IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES − その他の一般タイプ

  • IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER − 大文字

  • IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER − 小文字

  • IntlChar::CHAR_CATEGORY_TITLECASE_LETTER − タイトルケース文字

  • IntlChar::CHAR_CATEGORY_MODIFIER_LETTER − 修飾文字

  • IntlChar::CHAR_CATEGORY_OTHER_LETTER − その他の文字

  • IntlChar::CHAR_CATEGORY_NON_SPACING_MARK − 幅を持たない結合文字

  • IntlChar::CHAR_CATEGORY_ENCLOSING_MARK − 前の文字を囲む結合文字

  • IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK − 幅を持つ結合文字

  • IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER − 10進数字

  • IntlChar::CHAR_CATEGORY_LETTER_NUMBER − 文字としての数字(ローマ数字など)

  • IntlChar::CHAR_CATEGORY_OTHER_NUMBER − その他の数字

  • IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR − 空白区切り文字

  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR − 行区切り文字

  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR − 段落区切り文字

  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR − 制御文字

  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR − 書式制御文字

  • IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR − 私用領域の文字

  • IntlChar::CHAR_CATEGORY_SURROGATE − サロゲート

  • IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION − ダッシュ類の句読点

  • IntlChar::CHAR_CATEGORY_START_PUNCTUATION − 開き括弧類

  • IntlChar::CHAR_CATEGORY_END_PUNCTUATION − 閉じ括弧類

  • IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION − 接続句読点(アンダースコアなど)

  • IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION − その他の句読点

  • IntlChar::CHAR_CATEGORY_MATH_SYMBOL − 数学記号

  • IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL − 通貨記号

  • IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL − 修飾記号

  • IntlChar::CHAR_CATEGORY_OTHER_SYMBOL − その他の記号

  • IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION − 先頭句読点

  • IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION − 末尾句読点

  • IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT − カテゴリ定数の総数

使用例

以下は、IntlChar::charType()関数を使って各文字のカテゴリを判定するサンプルコードです。

<?php
    var_dump(IntlChar::charType("n") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
    echo "<br>";
    var_dump(IntlChar::charType("jkl") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
    echo "<br>";
    var_dump(IntlChar::charType("r") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
    echo "<br>";
    var_dump(IntlChar::charType("Z") === IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER);
    echo "<br>";
    var_dump(IntlChar::charType(".") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
    echo "<br>";
?>

出力結果

上記コードを実行すると、次のような結果が出力されます。

bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

結果の解説

  • "n" および "r" は小文字のアルファベットであるため、制御文字(CONTROL_CHAR)には該当せず false が返ります。

  • "jkl" のように複数文字を渡した場合、評価されるのは先頭の1文字のみです。「j」は小文字のため、句読点(OTHER_PUNCTUATION)とは一致せず false になります。

  • "Z" は大文字アルファベットなので大文字(UPPERCASE_LETTER)と一致し、true が返ります。

  • "." は句読点に分類されるため、OTHER_PUNCTUATION との比較で true が返ります。

  1. PHPのIntlChar::isJavaIDPart()関数の使い方を徹底解説

    IntlChar::isJavaIDPart()関数は、指定した文字がJavaの識別子(identifier)の一部として使用できる文字かどうかを判定するためのPHPの組み込み関数です。英字・数字・通貨記号($など)・接続句読点(_など)といった、Java識別子に含めることができる文字に対しては true を返します。 構文 IntlChar::isJavaIDPart( $val ) パラメータ $val:UTF-8エンコードされた文字列として表される1文字、またはコードポイントを示す整数値を指定します。 戻り値 $val がJava識別子の一部として有効な文字であれば bool(

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

    IntlChar::totitle() 関数は、入力された値がUnicode文字のタイトルケース(Titlecase)に該当するかどうかを判定し、該当する場合はそのタイトルケース形式の文字を返すための関数です。タイトルケースとは、見出しや表題などで用いられる大文字・小文字の書式のことで、たとえばラテン文字の「lj」のような合字に対しては「Lj」という形式が割り当てられます。 この関数を利用するには、PHPに国際化拡張モジュール(intl拡張)がインストールされている必要があります。 構文 IntlChar::totitle(val) パラメータ val − UTF-8文字列