在引号内转义引号

时间:2018-03-12 17:22:39

标签: arrays preg-replace

我有一些格式错误的json,我需要修复(我无法修复源代码)

... "productName": "Widget "Foo"", "productVariation": "", ... 它应该是

... "productName": "Widget \"Foo\"", "productVariation": "", ...

看来我可以用preg找到引号内的内容。

/productName":\s*"(.*?)",\s*"productVariation/

我修复了其他json-errors woth preg_replace,但我无法弄清楚如何在匹配中转义引号。

1 个答案:

答案 0 :(得分:0)

这有助于与泰迪熊交谈......

$s = preg_replace_callback('/(productName":\s*")(.*?)(",\s*"productVariation)/',
    function ($matches) {
        return $matches[1].addslashes($matches[2]).$matches[3];
    },$s);