ord
文字列の先頭バイトを、0 から 255 までの値に変換する
説明
int ord(string $character
)
string
が ASCII,
ISO-8859, Windows 1252 のような シングルバイトエンコーディング だった場合、
これは文字セットのマッピングテーブルにある文字の位置を返すことと同義です。
しかし、この関数は string
のエンコーディングについて知りませんし、
特に UTF-8 や UTF-16 のようなマルチバイトエンコーディングについては、
この関数からは Unicode のコードポイントは絶対にわからないことに注意してください。
この関数は chr と逆の動作をします。
戻り値
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