PHP html实体
当我在 PHP 项目中使用 htmlentities() 函数时,我是否应该始终将它与标志一起使用,以便它与其他语言字符兼容?
$my_variable = $some_data;
$output_variable = htmlentities($my_variable);
或者...
$my_variable = $some_data;
$output_variable = htmlentities($my_variable, ENT_COMPAT, 'UTF-8');
如果以上都不是,使用此功能的正确方法是什么。
谢谢你!
When I use htmlentities() function in my PHP projects, should I always use it with a flag so it is compatible with other language characters?
$my_variable = $some_data;
$output_variable = htmlentities($my_variable);
or...
$my_variable = $some_data;
$output_variable = htmlentities($my_variable, ENT_COMPAT, 'UTF-8');
If neither of the above, what is the proper way to use this function.
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一般来说,您根本不应该使用它。指定
Content-Type
HTTP 标头中使用的编码,然后使用真实字符而不是实体通常会更有效。 (OTOH,您应该使用htmlspecialchars
将 HTML 中具有特殊含义的字符转换为实体)。如果您确实使用它,那么如果您不使用默认值 (ISO-8859-1),则需要指定要转换的编码。当您不使用 UTF-8 时指定 UTF-8 的作用不大。
Generally speaking, you shouldn't use it at all. Specifying the encoding used in the
Content-Type
HTTP header and then using real characters instead of entities is generally more efficient. (OTOH, you should usehtmlspecialchars
to convert characters which have special meaning in HTML to entities).If you do use it, then you need to specify what encoding you are converting from if you aren't using the default (ISO-8859-1). Specifying UTF-8 when you aren't using UTF-8 is less than helpful.
如果您不确定正在使用什么字符集,那么第二种方法更好。然而,在大多数情况下,您会发现第一个就可以了。
If you're unsure what charset you're using, the second way it the better. However, for most occasions, you'll find that the first one is fine.