json_encode()函数第二个参数的使用方法

  使用json_encode()函数时如果没有设置第二个参数PHP会默认将斜杠进行转义,还会将中文进行unicode编码。
 
  要解决斜杠转义问题第二个参数可以传递PHP常量JSON_UNESCAPED_SLASHES,要解决中文unicode编码问题第二个参数可以传递PHP常量JSON_UNESCAPED_UNICODE,但是如果要同时解决斜杠转义和中文unicode编码就要用另一种方式了。
 
  实际上常量JSON_UNESCAPED_SLASHES和JSON_UNESCAPED_UNICODE都是一个整数,而且相关常量还不止这两个,具体可看下面的列表:
 
  JSON_HEX_TAG              => 1
  JSON_HEX_AMP              => 2
  JSON_HEX_APOS             => 4
  JSON_HEX_QUOT             => 8
  JSON_FORCE_OBJECT         => 16
  JSON_NUMERIC_CHECK        => 32
  JSON_UNESCAPED_SLASHES    => 64
  JSON_PRETTY_PRINT         => 128
  JSON_UNESCAPED_UNICODE    => 256
  JSON_ERROR_DEPTH          => 1
  JSON_ERROR_STATE_MISMATCH => 2
  JSON_ERROR_CTRL_CHAR      => 3
  JSON_ERROR_SYNTAX         => 4
  JSON_ERROR_UTF8           => 5
  JSON_OBJECT_AS_ARRAY      => 1
  JSON_BIGINT_AS_STRING     => 2
 
  要同时使用多个常量只要将其代表的数值加起来即可,如我们要同时解决斜杠转义和中文unicode编码的问题就需要同时使用JSON_UNESCAPED_SLASHES和JSON_UNESCAPED_UNICODE,而两者数值加起来是320=64+256,即json_encode($arr, 320)。

Copyright © 2023 码农人生. All Rights Reserved