Intereting Posts
Как сделать DOMPDF поддержкой шрифта unicode шаг за шагом? cURL получает ответ с помощью спецификации utf-8 PHP: создание уникальных переменных в A для цикла Обнаруживать, если свойство объекта является приватным в PHP Использование регулярного выражения с preg_replace_callback Данные HABTM CakePHP не сохраняются в базе данных Новая recaptcha не работает дважды (в основном) на той же странице Как получить несколько параметров с одинаковым именем из URL-адреса в PHP и вставить все записи в таблицу PHP, MySQL: получение электронной почты, автоматический поиск в БД и отправка электронной почты по результатам Захват определенной части предыдущих / следующих узлов Magento: сохранить атрибут пользовательского адреса в кассе CodeIgniter: Страница не найдена при передаче параметров контроллеру? Динамическое вложение частичного представления начальной загрузки в представление Извлечение данных utf-8 из базы данных Какая польза от использования filter_has_var () над isset ()

Преобразование именных объектов HTML в числовые объекты HTML

Есть ли функция PHP для преобразования именованных объектов HTML в их соответствующие числовые объекты HTML?

Например:

$str = "Oggi è un bel giorno"; echo entities_to_unicode($str); // Oggi è un bel giorno 

Заранее благодарим за хороший день!

Solutions Collecting From Web of "Преобразование именных объектов HTML в числовые объекты HTML"

 echo preg_replace('/[^!-%\x27-;=?-~ ]/e', '"&#".ord("$0").";"', html_entity_decode($str)) 

Это решение основано на коде с php.net :

 function entities_to_unicode($str) { $str = html_entity_decode($str, ENT_QUOTES, 'UTF-8'); $str = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $str); return $str; } $str = 'Oggi è un bel giorno'; echo entities_to_unicode($str); 

Сначала используйте html_entity_decode, чтобы получить незашифрованную версию исходного кода. Если необходимо, установите третий параметр (кодирование) в соответствующее значение.

Затем используйте utf8_encode в этом исходном коде.

 $source_code_without_entities = html_entity_decode($source_code_with_entities); $utf8_source_code = utf8_encode($source_code_without_entities); 

Вот этот

  1. не требует перечисления объектов в коде пользователя,
  2. работает над HTML-кодом, содержащим именованные объекты (rude применяет html_entity_decode ко всей строке messes up <и> (convert & lt; and & gt;) и начало / конец HTML-тега):

Вот

 function htmlent2xml($s) { return preg_replace_callback("/(&[a-zA-Z][a-zA-Z0-9];)/",function($m){ $c = html_entity_decode($m[0],ENT_HTML5,"UTF-8"); return htmlentities($c,ENT_XML1,"UTF-8"); },$s); }