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

时间:2015-02-11 14:24:03

标签: php html hex entity

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

示例:&&

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

1 个答案:

答案 0 :(得分: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;
?>

然而,这可能会很慢