mb_ord

関数の概要

mb_ord は、PHPのマルチバイト文字列関数の一つで、指定したマルチバイト文字のUnicodeコードポイント(整数値)を取得するための関数です。UTF-8やその他のマルチバイトエンコーディングに対応しており、シングルバイト文字も含めて正確に文字のコードポイントを得ることができます。

パラメータの説明

  • string $string: コードポイントを取得したい単一の文字を含む文字列を指定します。複数文字を指定すると最初の1文字のコードポイントが対象となります。
  • string|null $encoding (省略可): 文字列のエンコーディングを指定します。省略した場合は内部エンコーディングが使用されます。UTF-8、ISO-8859-1など対応するエンコーディングを指定可能です。

戻り値

指定した文字のUnicodeコードポイントを整数値で返します。失敗した場合や無効な文字が指定された場合は false を返します。

使用例

基本的な使い方

<?php
// UTF-8の日本語文字「日」のコードポイントを取得
$code = mb_ord("日", "UTF-8");
echo $code; // 26085
?>

この例では、「日」(U+65E5) のUnicodeコードポイントを取得しています。UTF-8エンコーディングを指定しています。

英数字のコードポイント取得

<?php
// アルファベットの「A」のコードポイント
$code = mb_ord("A");
echo $code; // 65
?>

シングルバイト文字でも問題なくコードポイントが取得できます。エンコーディングは省略可能で、内部エンコーディングが使われます。

絵文字のコードポイントを調べる

<?php
// 絵文字「😀」のコードポイントを取得
$emoji = "😀";
$code = mb_ord($emoji, "UTF-8");
echo $code; // 128512
?>

絵文字などの4バイト文字も正しく取得可能です。UTF-8で扱うことが前提です。

関連する関数

  • mb_chr: コードポイントから文字列に変換する関数
  • ord: ASCII文字のコードポイントを取得(マルチバイト非対応)
  • mb_strlen: マルチバイト文字列の長さを取得する関数
  • mb_substr: マルチバイト文字列の一部を取得する関数

まとめ

mb_ord はPHPでマルチバイト文字のUnicodeコードポイントを取得したいときに便利な関数です。UTF-8などのマルチバイトエンコーディングに対応しており、日本語や絵文字など幅広い文字に対応しています。特に文字の識別や変換処理を行う実務で役立つため、マルチバイト文字列を扱う際には覚えておくと良いでしょう。