0

JSON応答があります。ほとんどすべてが正しいですが、エラーなしでデコードする前に、一部の値には「追加スラッシュ」が必要です。

http://jsonformatter.curiousconcept.com/ serviseによると、以下は無効です。

"admiAmn": "DEEE \ trtrtrtrtr"、そして私はjsonformatterに同意します。

addlashesを使用すると、スラッシュがどこにでも追加されるので、次のものを置き換えるだけです。

[NOT_SLASH] \ [NOT_SLASH]

と:

[NOT_SLASH] \\ [NOT_SLASH]

str_replaceもaddslashesもできません。置き換えられる「\」には、その前後に「\」がないことを確認する必要があります。

ありがとう。ご意見・ご感想をお聞かせください。

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 に答える