如何将 html 个实体转换为 php 中的十六进制实体?

How to convert html entities into hex entities in php?

我有一个包含许多 html 个实体的文件。我需要将 html 个实体转换为十六进制实体。

示例:&&

是否有将html转换为十六进制实体的函数?如果不是,哪种方式是实现这一目标的最有效和最快的方式?

首先,"hex entities" 是字符表示为 Unicode 代码点的实体。所有 Unicode 字符都可以表示为具有 Unicode 代码点的实体;在 HTML 中,有些可以仅用名称表示。

HTML 中具有预定义名称的实体列表很长:http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML

如果您有一个文本,其中 HTML 个实体已使用 shorthand 名称转换,那么您唯一的选择是进行搜索和替换。不用说,这在计算上可能非常密集。代码如下所示:

<?php
$str = 'Hello &amp; world! &quot;';

$find = ['&amp;', '&quot;']; //.. Complete the table with the entire list
$replace = ['&#x00026;', '&#x00022;']; // ... Complete this list too
$str = str_replace($find, $replace, $str);
echo $str;
?>

但是,这可能会很慢