0
$val = "I'm string";

对于这种类型的字符串,我使用了addslashes 函数,它将字符串转换成这样的:

"I\'m string"

并存入数据库。当我从数据库中的字段数组中获取所有数据并传入数组时

json_encode($arr);

作为回应,我得到带有额外斜杠的字符串,如下所示:

"I\\'m string"

我想删除由 json_encode 添加的额外斜线。我该怎么做??

4

3 回答 3

2

如果你真的想要这个问题的答案,你可以反转你的addslasheswith stripslashes

但永远不要使用 addlashes 函数来转义你要发送到 mysql 的值。

使用本机准备好的语句,mysqli_real_escape_string()PDO::quote.

但请注意:

  1. 不要使用易受攻击的字符集进行连接编码(使用 utf8 之类的)
  2. 使用高于 5.7.6 的 MySQL 版本。

在此处阅读有关字符集问题的更多信息:http: //php.net/manual/en/mysqlinfo.concepts.charset.php

于 2018-07-03T13:08:48.463 回答
2

您可以使用stripslashes.

但是,您应该使用准备好的语句。这样你就不必担心逃避你的价值观。

于 2018-07-03T13:03:02.443 回答
-2

这甚至可能是可能的(尽管我认为它只是正斜杠/

json_encode($array, JSON_UNESCAPED_SLASHES);

但请注意评论和 Script47 的回答并正确修复它。

于 2018-07-03T13:07:14.287 回答