public static function encode($data, $options = 448)
    {
        if (PHP_VERSION_ID >= 50400) {
            $json = json_encode($data, $options);
            if (false === $json) {
                self::throwEncodeError(json_last_error());
            }

            //  compact brackets to follow recent php versions
            if (PHP_VERSION_ID < 50428 || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50512) || (defined('JSON_C_VERSION') && version_compare(phpversion('json'), '1.3.6', '<'))) {
                $json = preg_replace('/\[\s+\]/', '[]', $json);
                $json = preg_replace('/\{\s+\}/', '{}', $json);
            }

            return $json;
        }

        $json = json_encode($data);
        if (false === $json) {
            self::throwEncodeError(json_last_error());
        }

        $prettyPrint = (bool) ($options & self::JSON_PRETTY_PRINT);
        $unescapeUnicode = (bool) ($options & self::JSON_UNESCAPED_UNICODE);
        $unescapeSlashes = (bool) ($options & self::JSON_UNESCAPED_SLASHES);

        if (!$prettyPrint && !$unescapeUnicode && !$unescapeSlashes) {
            return $json;
        }

        return JsonFormatter::format($json, $unescapeUnicode, $unescapeSlashes);
    }
public static function encode($data, $options = 448)
    {
        if (PHP_VERSION_ID >= 50400) {
            $json = json_encode($data, $options);
            if (false === $json) {
                self::throwEncodeError(json_last_error());
            }

            
            if (PHP_VERSION_ID < 50428 || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50512) || (defined('JSON_C_VERSION') && version_compare(phpversion('json'), '1.3.6', '<'))) {
                $json = preg_replace('/\[\s+\]/', '[]', $json);
                $json = preg_replace('/\{\s+\}/', '{}', $json);
            }

            return $json;
        }

        $json = json_encode($data);
        if (false === $json) {
            self::throwEncodeError(json_last_error());
        }

        $prettyPrint = (bool) ($options & self::JSON_PRETTY_PRINT);
        $unescapeUnicode = (bool) ($options & self::JSON_UNESCAPED_UNICODE);
        $unescapeSlashes = (bool) ($options & self::JSON_UNESCAPED_SLASHES);

        if (!$prettyPrint && !$unescapeUnicode && !$unescapeSlashes) {
            return $json;
        }

        return JsonFormatter::format($json, $unescapeUnicode, $unescapeSlashes);
    }
public static function encode ( $ data , $ options = 448 ) { if ( PHP_VERSION_ID >= 50400 ) { $ json = json_encode ( $ data , $ options ) ; if ( false === $ json ) { self :: throwEncodeError ( json_last_error ( ) ) ; } //  compact brackets to follow recent php versions if ( PHP_VERSION_ID < 50428 || ( PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50512 ) || ( defined ( 'JSON_C_VERSION' ) && version_compare ( phpversion ( 'json' ) , '1.3.6' , '<' ) ) ) { $ json = preg_replace ( '/\[\s+\]/' , '[]' , $ json ) ; $ json = preg_replace ( '/\{\s+\}/' , '{}' , $ json ) ; } return $ json ; } $ json = json_encode ( $ data ) ; if ( false === $ json ) { self :: throwEncodeError ( json_last_error ( ) ) ; } $ prettyPrint = ( bool ) ( $ options & self :: JSON_PRETTY_PRINT ) ; $ unescapeUnicode = ( bool ) ( $ options & self :: JSON_UNESCAPED_UNICODE ) ; $ unescapeSlashes = ( bool ) ( $ options & self :: JSON_UNESCAPED_SLASHES ) ; if ( ! $ prettyPrint && ! $ unescapeUnicode && ! $ unescapeSlashes ) { return $ json ; } return JsonFormatter :: format ( $ json , $ unescapeUnicode , $ unescapeSlashes ) ; }
Encodes an array into (optionally pretty-printed) JSON

@param  mixed  $data    Data to encode into a formatted JSON string
@param  int    $options json_encode options (defaults to JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
@return string Encoded json
Encodes an array into ( optionally pretty - printed ) JSON