(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,
// а полученное значение затем преобразовывается в числовую HTML-сущность.
?>
Пример #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æÆあア鸽"