1

文字列の作成に苦労した後json、データベース内に二重引用符を含むテキストを発見しました。引用符をエスケープされた同等のものに置き換える必要があります。これは機能します:

function escape( $str ) {
    return preg_replace('/"/',"\\\"",$str);
}

ただし、引用符がすでにエスケープされている可能性があることは考慮されていません。エスケープされていない文字にのみ当てはまるように式を変更するにはどうすればよいですか?

4

4 に答える 4

4

ここでは否定的な後読みを使用する必要があります

function escape( $str ) {
    return preg_replace('/(?<!\\)"/',"\\\"",$str);
}
于 2013-10-14T22:50:44.127 に答える
0

すべての二重引用符をエスケープするよりも、最初にすべてのエスケープされた二重引用符から「\」を削除してみてください。

str_replace(array('\"', '"'), array('"', '\"'), $str);
于 2013-09-23T07:18:18.653 に答える