(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_encode_numericentity — Кодирует символ в HTML-строку с числовой ссылкой на кодовую точку Юникода
$string,$map,$encoding = null,$hex = false
Функция преобразовывает кодовые точки символов
в строке string в HTML-строки с числовой ссылкой на символ.
stringКодируемая строка (string).
map
Параметр map принимает массив, в котором указывается диапазон кодовых точек для преобразования.
encoding
Параметр encoding устанавливает кодировку символов.
Функция установит для параметра значение внутренней кодировки символов,
если аргумент не передали или передали значение null.
hexУказывает, возвращать ли HTML-сущность в шестнадцатеричной нотации, иначе числовая ссылка на символ возвращается в десятичной нотации.
Функция возвращает преобразованную строку (string).
Функция теперь выбрасывает ошибку ValueError,
если в параметр map передали аргумент, который не содержит список значений с типом int.
| Версия | Описание |
|---|---|
| 8.4.0 |
Функция mb_encode_numericentity() теперь выбрасывает
ошибку ValueError, если в параметр map передали аргумент,
который не содержит список значений с типом int.
|
| 8.0.0 |
Теперь параметр encoding принимает значение null.
|
Пример #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 определяется диапазон кодовых точек Юникода.
// К кодовой точке исходного символа добавляется смещение offsetN и выполняется побитовая операция 'И' со значением маски maskN,
// а полученное значение затем преобразовывается в числовую ссылку на символ.
?>
Пример #2 Пример кодирования символа функцией mb_encode_numericentity()
<?php
$str = "aAæÆあア𩸽";
/* Преобразование каждого UTF8-символа длиной до 4 байтов в HTML-строку с числовой ссылкой на символ */
$convmap = [0, 0x1FFFFF, 0, 0x10FFFF];
var_dump(mb_encode_numericentity($str, $convmap, "utf8"));
/* Преобразование только 2- и 4-байтовых UTF8-символов в HTML-строку с числовой ссылкой на символ */
$convmap = [
0x80, 0x7FF, 0, 0x10FFFF,
0x10000, 0x1FFFFF, 0, 0x10FFFF,
];
var_dump(mb_encode_numericentity($str, $convmap, "utf8"));
?>Результат выполнения приведённого примера:
string(46) "aAæÆあア鸽" string(28) "aAæÆあア鸽"