为什么 htmlspecialchars 不转换输入值中的引号?

Why doesn't htmlspecialchars convert quotes inside an input value?

我有以下代码:

<input type="text" name="nr_p_vac" value="<?php echo htmlspecialchars($row['nr_p_vac']); ?>">

其中 $row['nr_p_vac'] 是测试 ' " / /n /t <>

当我不在输入中使用 htmlspecialchars 时,只有 test '(当然,因为 " 没有转义)。

当我使用 htmlspecialchars 函数时,输入具有正确的值 ' " / /n /t <>(因为现在 '" 已正确转义)。

但是输入的内容不应该转化成test &apos; '&quot;'之类的东西吗?

在这种情况下可以使用 htmlspecialchars 吗?

你可以查看页面源码,你会看到这个值为

' &quot; / /n /t &lt;&gt;

在你的情况下使用它是可以的

这里已经回答了: How to properly escape html form input default values in php?