ord

文字列の先頭バイトを、0 から 255 までの値に変換する

説明

int ord(string $character)

character の先頭バイトのバイナリ値を、 0 から 255 までの符号なしの整数値として解釈します。

string が ASCII, ISO-8859, Windows 1252 のような シングルバイトエンコーディング だった場合、 これは文字セットのマッピングテーブルにある文字の位置を返すことと同義です。 しかし、この関数は string のエンコーディングについて知りませんし、 特に UTF-8 や UTF-16 のようなマルチバイトエンコーディングについては、 この関数からは Unicode のコードポイントは絶対にわからないことに注意してください。

この関数は chr と逆の動作をします。

パラメータ

character

文字列。

戻り値

0 から 255 までの整数値を返します。

例1 ord の例

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "\$str の先頭は改行文字です。\n";
}
?>

例2 UTF-8 の文字列をバイト単位で調べる

<?php
declare(encoding='UTF-8');
$str = "🐘";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
 $byte = substr($str, $pos);
 echo 'Byte ' . $pos . ' of $str has value ' . ord($byte) . PHP_EOL;
}
?>

上の例の出力は以下となります。


Byte 0 of $str has value 240
Byte 1 of $str has value 159
Byte 2 of $str has value 144
Byte 3 of $str has value 152

参考