Php 将特殊字符转换为HTML字符代码

Php 将特殊字符转换为HTML字符代码,php,html,regex,content-management-system,special-characters,Php,Html,Regex,Content Management System,Special Characters,我正在为一位客户开发一个CMS,他需要编辑内容并使用特殊字符,如ç和>。但是,我不希望他必须输入像®;这样的字符代码。有人知道使用PHP自动转换这些字符的好方法吗?使用unicode,并向他演示如何从字符映射复制和粘贴:-)您可以使用: 最简单的方法是从一开始就使用UTF-8。 但您也可以使用DOM自动转换字符: $dom = new DOMDocument; $dom->appendChild(new DOMText('© oui içi » ')); echo $dom->

我正在为一位客户开发一个CMS,他需要编辑内容并使用特殊字符,如
ç
>
。但是,我不希望他必须输入像
®;这样的字符代码。有人知道使用PHP自动转换这些字符的好方法吗?

使用unicode,并向他演示如何从字符映射复制和粘贴:-)

您可以使用:


最简单的方法是从一开始就使用UTF-8。
但您也可以使用DOM自动转换字符:

$dom = new DOMDocument;
$dom->appendChild(new DOMText('© oui içi » '));
echo $dom->saveHtml();
输出

© oui içi » 
您可以使用htmlentities()来实现这一点

php -r 'echo htmlentities("®ç", ENT_COMPAT, "UTF-8"), "\n";'
®ç
要将实体恢复为可读文本,请使用html_entity_decode():


如果不使用unicode,请省略字符集名称或提供正确的字符集。

查看该函数。这将获取一个字符串并将组件字符转换为它们的HTML实体。您可以指定字符串的编码与用户的输入保持一致。

@Alin我想说,答案并不是那么糟糕——如果客户机已经使用了ç和®等字符,那么使用UTF-8(例如)作为CMS的输入、存储和输出将使您无需使用HTML实体。就像它在这个网页上所做的一样,例如,我刚刚输入了“®”,将它发送到网站,网站将它显示为“®”--查看这个网页的源代码,你不会在那里看到HTML实体,只是实际的,真正的字符。@MattGibson一个问题是,如果您使用源代码管理,并且在基于unix的操作系统和windows操作系统之间来回移动代码。我了解到,ALT-key代码在操作系统中的工作方式与您希望的不同。错误。只要确保你的字符编码是一致的(也就是说,在整个过程中只使用UTF-8),并且你不需要转换这些字符来完美地显示它们。这个奇妙的答案解决了我几年来一直争论的一个问题。值得注意的是,当您将代码从一个操作系统移动到另一个操作系统时,提到复制粘贴或硬编码符号的ALT-KeyCode版本的其他一些答案将不起作用。
php -r 'echo html_entity_decode("®ç", ENT_COMPAT, "UTF-8"), "\n";'
®ç