为什么将转义字符添加到隐藏输入的值中

Law*_*nti 4 html php json

<body>
  <div> <?= $_POST['msg'] ?> </div>
  <form id="frm" method="post">
    <input type="hidden" name='msg' value='{"field0": "Im a string", "field1": 84, "field3": "so am I"}' />
    <input type="submit" value="test" />
  </form>
</body>
Run Code Online (Sandbox Code Playgroud)

提交表单时,div 标签之间会显示以下字符串。

{\"field0\": \"Im a string\", \"field1\": 84, \"field3\": \"我也是\"}

为什么要添加转义字符?它们是由 PHP 服务器还是 Web 客户端添加的?我能做些什么来防止这种情况发生吗?

有人已经提到了 PHP 函数 stripslashes。我现在正在使用它,但我想一起摆脱斜线。

ins*_* me 5

检查您的 PHP 配置是否已magic_quotes_gpc激活,在这种情况下,PHP 服务器会自动为 GET/POST/cookie 值添加斜杠...