我试图在表单中输出项目的名称,即“大卫的项目”,如果用户没有正确输入表单中的所有数据,以节省用户必须再次输入名称。
如果我 var_dump $name 我会看到 David 的项目。但是如果我回显 $name 我会看到 David"'" 项目。我意识到 ' (单引号)变成了 "'"; 但我尝试使用 ENT_NOQUOTES 和 ENT_COMPAT 来避免对单引号进行编码,但两者都不起作用。
$name = trim(filter_input(INPUT_POST, 'name0', FILTER_SANITIZE_STRING));
<form method="post" class="form" />
Title: <input type="text" name="name0" value="<?php echo
htmlspecialchars($name, ENT_NOQUOTES); ?>">
我做错了什么还是应该 ENT_NOQUOTES 工作?我尝试使用 str_replace 将 ' 替换为 \' 但这也不起作用。
我发现的唯一方法是使用这个:
htmlspecialchars_decode(htmlspecialchars($name, ENT_NOQUOTES));
这可以接受吗?
抱歉,我意识到这可能是一个非常愚蠢的问题,但我无法理解它。
感谢您的任何回复。