(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_encode_numericentity — 文字を HTML 数値エンティティにエンコードする
$string,$map,$encoding = null,$hex = false
stringの中で指定した文字コードを
文字コードから HTML 数値エンティティに変換します。
変換後の文字列を返します。
| バージョン | 説明 |
|---|---|
| 8.4.0 |
map に、暗黙のうちに int に変換できない値が
含まれている場合、mb_encode_numericentity() は
ValueError をスローするようになりました。
|
| 8.0.0 |
encoding は、nullable になりました。
|
例1 map の例
<?php
$convmap = array(
int start_code1, int end_code1, int offset1, int mask1,
int start_code2, int end_code2, int offset2, int mask2,
// ........
int start_codeN, int end_codeN, int offsetN, int maskN
);
// start_codeN および end_codeN には Unicode の値を指定します
// 値に offsetN を加算し、maskN とのビットごとの 'AND' をとってから、
// 値を数値エンティティに変換します。
?>
例2 mb_encode_numericentity() の例
<?php
$str = "aAæÆあア𩸽";
/* 4 バイトまでのすべての UTF-8 文字を HTML 数値エンティティに変換する */
$convmap = [0, 0x1FFFFF, 0, 0x10FFFF];
var_dump(mb_encode_numericentity($str, $convmap, "utf8"));
/* 2 バイトと 4 バイトの UTF-8 文字だけを HTML 数値エンティティに変換する */
$convmap = [
0x80, 0x7FF, 0, 0x10FFFF,
0x10000, 0x1FFFFF, 0, 0x10FFFF,
];
var_dump(mb_encode_numericentity($str, $convmap, "utf8"));
?>上の例の出力は以下となります。
string(46) "aAæÆあア鸽" string(28) "aAæÆあア鸽"