PHPのIntlChar::charDirection()関数の使い方と戻り値一覧
PHPのIntlChar::charDirection()関数は、指定した文字またはコードポイントが持つ「双方向(Bidi)カテゴリ」の値を取得するための関数です。多言語対応アプリケーションにおいて、文字が左から右へ表示されるのか、右から左へ表示されるのかといった文字方向の属性を判定する際に役立ちます。
なお、この関数を利用するには、PHPにIntl拡張モジュール(PECL intl)がインストールされ、有効化されている必要があります。
構文
int IntlChar::charDirection(val)
パラメータ
val − 調べたい対象の値。整数(Unicodeコードポイント)またはUTF-8でエンコードされた1文字の文字列を指定します。
戻り値
IntlChar::charDirection()関数は、入力された文字に対応する双方向カテゴリの値を整数として返します。返される可能性のある定数は以下の通りです。
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT(左から右)
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT(右から左)
IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER(ヨーロッパ数字)
IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR(ヨーロッパ数字セパレータ)
IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR(ヨーロッパ数字ターミネータ)
IntlChar::CHAR_DIRECTION_ARABIC_NUMBER(アラビア数字)
IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR(共通数字セパレータ)
IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR(ブロックセパレータ)
IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR(セグメントセパレータ)
IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL(空白ニュートラル)
IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL(その他ニュートラル)
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING(左から右埋め込み)
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE(左から右オーバーライド)
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC(右から左アラビア語)
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING(右から左埋め込み)
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE(右から左オーバーライド)
IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT(ポップ方向フォーマット)
IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK(非スペーシングマーク)
IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL(境界ニュートラル)
IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE(最初の強い分離)
IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE(左から右分離)
IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE(右から左分離)
IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE(ポップ方向分離)
IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT(カテゴリ総数)
使用例
以下は、さまざまな文字に対してIntlChar::charDirection()関数を実行する例です。
<?php
var_dump(IntlChar::charDirection("-"));
echo "<br>";
var_dump(IntlChar::charDirection("*"));
echo "<br>";
var_dump(IntlChar::charDirection("kjh"));
echo "<br>";
var_dump(IntlChar::charDirection("H"));
echo "<br>";
?>
出力結果
上記のコードを実行すると、次のような出力が得られます。
int(3) int(10) NULL int(0)
出力の解説
"-" → int(3):ハイフンはヨーロッパ数字セパレータ(EUROPEAN_NUMBER_SEPARATOR)として判定されます。
"*" → int(10):アスタリスクはその他ニュートラル(OTHER_NEUTRAL)として判定されます。
"kjh" → NULL:複数の文字を渡した場合は有効なコードポイントとして扱えないため、NULLが返されます。
"H" → int(0):英字「H」は左から右(LEFT_TO_RIGHT)のカテゴリに属します。
このように、IntlChar::charDirection()を使うことで、文字ごとの双方向カテゴリを簡単にプログラムから取得できます。アラビア語やヘブライ語など右から左に記述される言語を扱う国際化処理において特に有用な関数です。
-
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文字列