如何防止通过表单发送的json数据添加斜杠?

时间:2015-06-02 07:33:08

标签: php json forms post

有没有办法防止通过表单发送的JSON数据在使用PHP检索时使用斜杠进行转义?

我知道如何删除斜杠,但为什么它甚至会被转义?我能预防吗?如果我通过ajax发布json-data,则不会添加斜杠。

Magic Quotes 不活跃,所以这不是问题。

为了澄清,我的问题不是如何 json_decode 或如何 stripslashes 。我想知道为什么我的json数据在作为textarea发布时会添加斜杠。如果有办法阻止它。

HTML:

<form method="POST">
  <textarea name="data">[{"id":85210094,"quantity":1}]</textarea>
  <input type="submit" value="POST">
</form>

PHP:

<?php
if($_POST['data']) {
  echo '<pre>';
  var_dump($_POST['data']); // string(34) "[{\"id\":85210094,\"quantity\":1}]"
  var_dump(json_decode($_POST['data'], true)); // NULL
  var_dump(json_decode(stripslashes($_POST['data']), true)); // array(1) { [0]=> array(2) { ["id"]=> int(85210094) ["quantity"]=> int(1) } }
  echo '</pre>';
}
?>

0 个答案:

没有答案