As of PHP 8.0.0, a ValueError is thrown if
encoding is an invalid encoding.
Prior to PHP 8.0.0, an E_WARNING was emitted instead.
Changelog
Version
Description
8.4.0
The mb_encode_numericentity() function now throws a
ValueError if map
contains any value that cannot be implicitly converted to int.
8.0.0
encoding is nullable now.
8.0.0
Now throws a ValueError if
encoding is an invalid encoding.
Previously, an E_WARNING was emitted
and false was returned.
Examples
Example #1 map example
<?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
);
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then converts value to numeric string reference.
?>
Example #2 mb_encode_numericentity() example
<?php
$str = "aAæÆあア𩸽";
/* Convert all UTF8 characters up to 4 bytes to HTML numeric character reference */
$convmap = [0, 0x1FFFFF, 0, 0x10FFFF];
var_dump(mb_encode_numericentity($str, $convmap, "utf8"));
/* Converts only 2-byte and 4-byte UTF8 characters to HTML numeric character reference */
$convmap = [
0x80, 0x7FF, 0, 0x10FFFF,
0x10000, 0x1FFFFF, 0, 0x10FFFF,
];
var_dump(mb_encode_numericentity($str, $convmap, "utf8"));
?>