Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
文字列の作成に苦労した後json、データベース内に二重引用符を含むテキストを発見しました。引用符をエスケープされた同等のものに置き換える必要があります。これは機能します:
json
function escape( $str ) { return preg_replace('/"/',"\\\"",$str); }
ただし、引用符がすでにエスケープされている可能性があることは考慮されていません。エスケープされていない文字にのみ当てはまるように式を変更するにはどうすればよいですか?
ここでは否定的な後読みを使用する必要があります
function escape( $str ) { return preg_replace('/(?<!\\)"/',"\\\"",$str); }
すべての二重引用符をエスケープするよりも、最初にすべてのエスケープされた二重引用符から「\」を削除してみてください。
str_replace(array('\"', '"'), array('"', '\"'), $str);