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 が返ります。
-
PHPのIntlChar::isJavaIDPart()関数の使い方を徹底解説
IntlChar::isJavaIDPart()関数は、指定した文字がJavaの識別子(identifier)の一部として使用できる文字かどうかを判定するためのPHPの組み込み関数です。英字・数字・通貨記号($など)・接続句読点(_など)といった、Java識別子に含めることができる文字に対しては true を返します。 構文 IntlChar::isJavaIDPart( $val ) パラメータ $val:UTF-8エンコードされた文字列として表される1文字、またはコードポイントを示す整数値を指定します。 戻り値 $val がJava識別子の一部として有効な文字であれば bool(
-
PHPのIntlChar::totitle()関数の使い方を徹底解説
IntlChar::totitle() 関数は、入力された値がUnicode文字のタイトルケース(Titlecase)に該当するかどうかを判定し、該当する場合はそのタイトルケース形式の文字を返すための関数です。タイトルケースとは、見出しや表題などで用いられる大文字・小文字の書式のことで、たとえばラテン文字の「lj」のような合字に対しては「Lj」という形式が割り当てられます。 この関数を利用するには、PHPに国際化拡張モジュール(intl拡張)がインストールされている必要があります。 構文 IntlChar::totitle(val) パラメータ val − UTF-8文字列