古いバージョンのPHPはJsonの中の特殊な文字の関数をエスケープします

1099 ワード

AppにAPIを作成し、サーバー側のMySQLからデータを取り出し、JSONを生成します.データにはcontentというフィールドがあり、文章の内容が保存されており、HTMLラベルが大量に含まれています.このフィールドはjsonを転送するときにエスケープする必要があります.特殊な文字が大量にあるとjsonの構造を破壊します.
例えばcontent:
 
  
'Lorem ipsum "dolor" sit amet, consectetur \ adipiscing elit.'

次のように変換する必要があります.
 
  
Lorem ipsum \"dolor\" sit amet,
consectetur \\ adipiscing elit.

PHPバージョン>5.2の場合、json_Encodeはエスケープを持参する.旧バージョンのPHPであれば以下の関数を使用できます.

# list from www.json.org: (\b backspace, \f formfeed)
public function escapeJsonString($value) {
  $escapers = array("\\", "/", "\"", "
", "\r", "\t", "\x08", "\x0c"); $replacements = array("\\\\", "\\/", "\\\"", "\
", "\\r", "\\t", "\\f", "\\b"); $result = str_replace($escapers, $replacements, $value); return $result; }

よく使うので、記録して、あなたに役に立つことを望んでいます.