json はコメントをサポートしていないため、コメントを消去するには独自の関数が必要です。私のコメントは、次のような CSS スタイルです。
/*comment*/
私は次のことを試しました
$json = preg_replace("/(\/\*.?\*\/)/", "", $json);
しかし運がない。ありがとう
echo preg_replace("#/\*.*?\*/#s", "", $json);
主な変更点:
#
パターン区切りとして使用しました。これにより、スラッシュをエスケープする必要がなくなり、正規表現が読みやすくなります。s
にも一致させるフラグを追加しました。.
これにより、json 文字列内のコメントが破棄されることに注意してください。破壊される json オブジェクトの例
{"codeSample": " /*******THIS WILL GET STRIPPED OUT******/"}
以下を使用します。
$json = preg_replace('!/\*.*?\*/!s', '', $json); // remove comments
$json = preg_replace('/\n\s*\n/', "\n", $json); // remove empty lines that can create errors
これにより、コメント、複数行のコメント、および空行が消去されます
編集:コメントで何人かが言っていたように、次を使用できます:
$json = preg_replace('/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/', '', $json);
文字列内にないコメントのみを削除します。
$string = "some text /*comment goes here*/ some text again /*some comment again*/";
$string = preg_replace( '/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/' , '' , $string );
echo $string; // some textsome text again