$val = "I'm string";
对于这种类型的字符串,我使用了addslashes 函数,它将字符串转换成这样的:
"I\'m string"
并存入数据库。当我从数据库中的字段数组中获取所有数据并传入数组时
json_encode($arr);
作为回应,我得到带有额外斜杠的字符串,如下所示:
"I\\'m string"
我想删除由 json_encode 添加的额外斜线。我该怎么做??
$val = "I'm string";
对于这种类型的字符串,我使用了addslashes 函数,它将字符串转换成这样的:
"I\'m string"
并存入数据库。当我从数据库中的字段数组中获取所有数据并传入数组时
json_encode($arr);
作为回应,我得到带有额外斜杠的字符串,如下所示:
"I\\'m string"
我想删除由 json_encode 添加的额外斜线。我该怎么做??
如果你真的想要这个问题的答案,你可以反转你的addslashes
with stripslashes
。
但永远不要使用 addlashes 函数来转义你要发送到 mysql 的值。
使用本机准备好的语句,mysqli_real_escape_string()
或PDO::quote
.
但请注意:
在此处阅读有关字符集问题的更多信息:http: //php.net/manual/en/mysqlinfo.concepts.charset.php
您可以使用stripslashes
.
但是,您应该使用准备好的语句。这样你就不必担心逃避你的价值观。
这甚至可能是可能的(尽管我认为它只是正斜杠/
:
json_encode($array, JSON_UNESCAPED_SLASHES);
但请注意评论和 Script47 的回答并正确修复它。