如何删除\“

时间:2012-11-25 22:49:39

标签: php str-replace

字符串(JSON):{"title":"\"Copper\""}

我试过了

$output = str_replace('\\"', "", $output);

但我得到了

{"title":""      Copper""}

我的期望

{"title":"Copper"}

2 个答案:

答案 0 :(得分:2)

您的示例代码不完整,因为您提供的内容确实有效:

php > $s='{"title":"\"Copper\""}';
php > echo $s;
{"title":"\"Copper\""}
php > echo str_replace('\\"',"",$s);
{"title":"Copper"}

(即来自php -a互动会话)

换句话说,您的输入数据不是您想象的那样。

正如其他人所说的那样,BTW最好在JSON上使用json_decode。然后对感兴趣的领域进行字符串操作。然后使用json_encode将其转回JSON。使用str_replace或正则表达式可能适用于简单的情况,但只要您收到意外数据,就会出现严重错误。

答案 1 :(得分:1)

您是否使用自己的代码生成JSON字符串(而不是从第三方获取)?如果是这样,请发布生成JSON字符串的代码,并详细说明您在此处所做的操作以尝试解决问题。

如果您无法控制JSON字符串(和/或JSON字符串的创建者不会/不能修复它),那么修复它的一种黑客方法是:

$output = str_replace( '\"' , '' , $output );