字符串(JSON):{"title":"\"Copper\""}
我试过了
$output = str_replace('\\"', "", $output);
但我得到了
{"title":"" Copper""}
我的期望
{"title":"Copper"}
答案 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 );