htmlentities() vs. htmlspecialchars()
2022-08-30 05:49:42
和 之间有什么区别。我什么时候应该使用其中一个?htmlspecialchars()
htmlentities()
和 之间有什么区别。我什么时候应该使用其中一个?htmlspecialchars()
htmlentities()
htmlspecialchars
可用于:
当不需要对所有具有HTML等效项的字符进行编码时。
如果知道页面编码与文本特殊符号匹配,为什么要使用? 非常简单,并且生成更少的代码以发送到客户端。htmlentities
htmlspecialchars
例如:
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^
第二个更短,如果设置了ISO-8859-1字符集,则不会引起任何问题。
当数据将不仅通过浏览器处理时(以避免解码HTML实体),
如果输出是 XML(请参阅 Artefacto 的答案)。
从 HTMLENT 的 PHP 文档中:
此函数在所有方面都相同,但 与 不同,所有具有 HTML 字符实体等效项的字符都转换为这些实体。
htmlspecialchars()
htmlentities()
从 htmlspecialchars 的 PHP 文档中:
某些字符在 HTML 中具有特殊意义,如果要保留其含义,则应由 HTML 实体表示。此函数返回一个字符串,其中包含其中一些转换;所做的翻译是那些对日常Web编程最有用的翻译。如果需要翻译所有 HTML 字符实体,请改用。
htmlentities()
不同之处在于编码的内容。选项包括所有内容(实体)或“特殊”字符,如 & 符号、双引号和单引号、小于和大于(特殊字符)。
我更喜欢尽可能使用。htmlspecialchars
例如:
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^