0

我有 JSON 响应。几乎所有内容都是正确的,但有些值需要“添加斜杠”才能解码而不会出错。

http://jsonformatter.curiousconcept.com/ servise 表示以下内容无效:

"admiAmn":"DEEE\trtrtrtrtr",我同意 jsonformatter。

如果我使用addslashes,斜线将被添加到任何地方,我只需要替换以下内容:

[NOT_SLASH]\[NOT_SLASH]

和:

[NOT_SLASH]\\[NOT_SLASH]

我既不能 str_replace 也不能添加斜杠,我必须确保被替换的 '\' 前后没有任何 '\'。

谢谢。我想听听你的想法和想法。

4

1 回答 1

1

您可以使用preg_replace这样的技巧:

$in = '"admiAmn":"DEEE\trtrtrtrtr\\alma"';
$slash = preg_quote('\\');
echo preg_replace("#(?<!{$slash}){$slash}(?!{$slash})#", $slash.$slash, $in), "\n";

我已将转义符移至\变量以使其更具可读性。该模式使用负面的后向前瞻功能来完成这项工作。

但是,如果可以,您应该尝试修复源而不是修补输出(至少提交某种错误报告),修补输出可能非常脆弱。

于 2012-08-02T10:01:21.563 回答