函数名称:mb_encode_numericentity()
适用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7
函数描述:将字符串中的非ASCII字符编码为十进制或十六进制的字符实体
用法:
string mb_encode_numericentity ( string $str , array $convmap , string $encoding = mb_internal_encoding() , bool $is_hex = false ): string
参数:
- $str:需要进行编码的字符串。
- $convmap:包含从字符到数值的映射的数组。数组的格式为 array(字符开始, 字符结束, 基数, 转换后的字符串编码)。例如,要将所有字符转换为十六进制实体,可以使用 array(0, 0x10FFFF, 16, '&#x%X;')。
- $encoding:可选参数,指定字符串编码,默认为当前的内部编码。
- $is_hex:可选参数,指定是否将实体编码为十六进制。默认为false,即使用十进制编码。
返回值:编码后的字符串。
示例:
$str = "Hello, 世界!";
$convmap = array(0x80, 0x10FFFF, 0, 0xFFFD);
$encoded_str = mb_encode_numericentity($str, $convmap, 'UTF-8', true);
echo $encoded_str;
输出:
Hello, 世界!
以上示例中,我们将字符串"Hello, 世界!"中的非ASCII字符编码为十六进制字符实体。字符"世"的十六进制编码为4E16,字符"界"的十六进制编码为754C,因此输出结果为"Hello, 世界!"。