곰시기's

[PHP] - JsonEncoder 함수 본문

Web Development/PHP

[PHP] - JsonEncoder 함수

곰시기 2021. 2. 16. 15:55
function fncJsonEnc( $data ) {
  /*
   * $data     : 사용자로 부터 받아오는 변수
   * $get_type : $data type 확인
   * $key, $k  : 배열의 key
   * $val, $v  : 배열의 value
   * $rtn      : 반환 값
   * $flag     : 성공 실패 여부
   */

  $get_type = "";
  $key      = "";
  $val      = "";
  $flag     = false;
  $rtn      = "";

  $get_type = strtoupper( gettype( $data ) );

  switch( $get_type ) {
    case "BOOLEAN" :
      return $data ? "true" : "false";
      break;

    case "INTEGER" :
    case "DOUBLE" :
      return $data;
      break;

    case "STRING" :
      $data = preg_replace( "/(\n|\r|\n\r|\r\n|\t|\s){2,}/", " ", $data );
      return '"'.strtr( $data, array( '\\' => '\\\\', '"' => '\\"' ) ).'"';
      break;

    case "ARRAY" :
      $flag = false;
      $key  = array_keys( $data );
      
      foreach( $key as $val ) {
        if( !is_int( $val ) ) {
          $flag = true;
          break;
        }
      }

      $arr = array();
      foreach( $data as $k => $v ) {
        $arr[] = ( $flag ? '"'.strtr( $k, array( '\\' => '\\\\', '"' => '\\"' ) ).'":':'').fncJsonEnc( $v );
      }

      return $flag ? '{'.join( ',', $arr ).'}' : '['.join( ',', $arr ).']';
      break;

    default :
      return '""';
      break;
  }
}
출처 - https://taegon.kim/archives/944 ** \n이 포함된 문자열에 대해 오류가 생겨 한줄을 추가 함

'Web Development > PHP' 카테고리의 다른 글

[PHP] - pdf 속성 추출  (0) 2021.02.16
[PHP] - Select Box  (0) 2021.02.16
[PHP] - 간단한 iconv 함수  (0) 2021.02.16
[PHP] - 원격지 파일 다운로드  (0) 2021.02.16
[PHP] - 문자열 앞까지 자르기  (0) 2021.02.16
Comments