(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æÆあア鸽"