如何将 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 & world! "';
$find = ['&', '"']; //.. Complete the table with the entire list
$replace = ['&', '"']; // ... Complete this list too
$str = str_replace($find, $replace, $str);
echo $str;
?>
但是,这可能会很慢。
我有一个包含许多 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 & world! "';
$find = ['&', '"']; //.. Complete the table with the entire list
$replace = ['&', '"']; // ... Complete this list too
$str = str_replace($find, $replace, $str);
echo $str;
?>
但是,这可能会很慢。