如何在PHP中将HTML实体转换为十六进制实体?

4
我有一个包含很多HTML实体的文件。我需要将HTML实体转换为十六进制实体。
例如:& 转换为 & 是否有任何函数可以将HTML转换为十六进制实体?如果没有,哪种方法是最有效和最快的方法来实现这个功能?

也许这个问题可以帮到您: https://dev59.com/b1vUa4cB1Zd3GeqPtnE5 - Catshinski
1个回答

0

首先,“十六进制实体”是以Unicode代码点表示字符的实体。所有Unicode字符都可以用Unicode代码点表示为实体;在HTML中,有些字符可以用名称代替。

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

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

<?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;
?>

然而,这可能非常缓慢


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接