PHP:将UTF8字符编码为html实体

PHP:将UTF8字符编码为html实体,php,html,encoding,Php,Html,Encoding,我想把普通字符编码成html实体,比如 a => a A => A b => b B => B 但是 不起作用。它输出html源代码中的正常字符(AB),而不是html实体 如何转换它们?您可以使用or非常轻松地为此构建一个函数,其中任何一个都将为您提供Unicode代码点的数值 然后可以使用将其转换为十六进制字符串,并添加“&#x”和“;”在其周围添加一个HTML实体: 函数生成实体(字符串$ch

我想把普通字符编码成html实体,比如

a => a
A => A
b => b
B => B
但是

不起作用。它输出html源代码中的正常字符(AB),而不是html实体


如何转换它们?

您可以使用or非常轻松地为此构建一个函数,其中任何一个都将为您提供Unicode代码点的数值

然后可以使用将其转换为十六进制字符串,并添加“&#x”和“;”在其周围添加一个HTML实体:

函数生成实体(字符串$char){
$codePoint=mb_ord($char,'UTF-8');//或IntlChar::ord($char);
$hex=base_convert($codePoint,10,16);
返回“&#x”。$hex.”;
}
echo make_实体(“a”);
echo make_实体(“€”);

echo make_entity('我仍然不理解最后一行。如果我通过以下方式调用函数:$for($I=0;$Imake_entity($m[0])是什么意思?如果我复制代码,它会说“语法错误,意外的'=>'(t_双箭头)”。我也尝试过“self::make_entity($m[0]),因为我将其复制到一个类中,从而将函数更改为静态。但随后它显示“未定义的变量m”。php文档中的示例显示,例如:“next_year”作为没有fn($m)=>@User123456789的函数,这只是一个“箭头函数”,这是一种编写PHP7.4中引入的简单匿名函数的简明方法。如果您停留在旧版本上,您可以使用不同的语法;我已经添加了一些解释。
echo htmlentities("a");