我有“隐藏”的问题,
PHP:
$text = addslashes("Black Sun's zenith");
echo "<input type='hidden' value=".$text." name='saveCard[]'>";
Run Code Online (Sandbox Code Playgroud)
显示实际代码是:
<input type="hidden" value="Black" sun\'s="" zenith="" name="saveCard[]">
Run Code Online (Sandbox Code Playgroud)
显示正确的代码是:
<input type="hidden" value="Black Sun's zenith" name="saveCard[]">
Run Code Online (Sandbox Code Playgroud)
谢谢大家。
addslashes是用于转义使用\字符开始转义序列的语言的内容的通用例程。HTML 不是这样一种语言,大多数语言都有更好、更具体的功能来处理转义。
使用htmlspecialchars, 不addslashes为 HTML 转义内容。
由于属性值包含空格,因此您还需要将其包裹在引号中。
echo "<input type='hidden' value=\"".htmlspecialchars($text)."\" name='saveCard[]'>";
Run Code Online (Sandbox Code Playgroud)
根据经验,尽量避免将 HTML 放入 PHP 字符串中。
?>
<input
type="hidden"
value="<?php echo htmlspecialchars($text); ?>"
name="saveCard[]">
<?php
Run Code Online (Sandbox Code Playgroud)