Php htmlentities在echo中运行时有效,但在var中定义时无效

Php htmlentities在echo中运行时有效,但在var中定义时无效,php,Php,我正在制作一份通过电子邮件发送的联系表,但是我无法让htmlentities正确使用我的表格。我要回显一下,看它是否工作 我希望它如何工作:假设我投入 它应该输出<"">,但它输出 当我在echo中运行htmlentities时,它似乎起了作用 $name = trim($_POST["name"]); echo htmlentities($name, ENT_QUOTES, "UTF-8"); 然后正确地输出它。这是为什么?我如何让它以第一种方式工作?当您看到它的输出

我正在制作一份通过电子邮件发送的联系表,但是我无法让htmlentities正确使用我的表格。我要回显一下,看它是否工作

我希望它如何工作:假设我投入

它应该输出<"">,但它输出

当我在echo中运行htmlentities时,它似乎起了作用

$name = trim($_POST["name"]);
echo htmlentities($name, ENT_QUOTES, "UTF-8");

然后正确地输出它。这是为什么?我如何让它以第一种方式工作?

当您看到它的输出时
您是将其视为html还是文本?区别在于,如果它是html,
是正确的输出,因为实体被解析为它们的字符以供显示。如果它不起作用,您将在html中看不到任何东西,因为它看起来像一个标记,即使格式很差。如果您只是重复这一点,我希望在屏幕上看到
,如果您查看源代码,您将看到
&无论什么实体。@JonathanKuhn谢谢你现在对我有意义:)。那么,我的第一个选项是否可以保护我不被人将javascript放入我的表单?这取决于你使用它的目的,但很可能是的。如果您在屏幕上看到脚本标记,并且在查看源代码时它是实体,则不会运行脚本。
$name = trim($_POST["name"]);
echo htmlentities($name, ENT_QUOTES, "UTF-8");