- mb_strlen関数を使用して、絵文字の文字列の長さを取得します。
- mb_substr関数を使用して、絵文字の各文字を1つずつ取得します。
- ord関数を使用して、各文字の10進数のコードポイントを取得します。
以下は、上記の手順を使用して絵文字を10進数のコードに変換するサンプルコードです。
function emojiToDecimal($emoji) {
$emojiLength = mb_strlen($emoji);
$decimalCodes = [];
for ($i = 0; $i < $emojiLength; $i++) {
$character = mb_substr($emoji, $i, 1);
$decimalCode = ord($character);
$decimalCodes[] = $decimalCode;
}
return $decimalCodes;
}
$emoji = "????";
$decimalCodes = emojiToDecimal($emoji);
echo "絵文字 {$emoji} の10進数のコードは: ";
foreach ($decimalCodes as $decimalCode) {
echo "{$decimalCode} ";
}
このコードは、絵文字「????」を10進数のコードに変換し、それを出力します。出力結果は「128522」となります。
注意点として、絵文字は通常、複数のUnicodeコードポイントで構成されている場合があります。上記のコードでは、絵文字の各文字を個別に変換していますが、複合絵文字の場合には個別のコードポイントに分割される可能性があります。そのため、絵文字の完全なコードポイントを取得するには、Unicodeの正規化などの処理が必要になる場合があります。
以上が、PHPで絵文字を10進数のコードに変換する方法です。