我有一个包含很多HTML实体的文件。我需要将HTML实体转换为十六进制实体。
例如:
例如:
&
转换为 &
是否有任何函数可以将HTML转换为十六进制实体?如果没有,哪种方法是最有效和最快的方法来实现这个功能?首先,“十六进制实体”是以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 & world! "';
$find = ['&', '"']; //.. Complete the table with the entire list
$replace = ['&', '"']; // ... Complete this list too
$str = str_replace($find, $replace, $str);
echo $str;
?>
然而,这可能非常缓慢。