diff --git src/wp-includes/functions.php src/wp-includes/functions.php
index 458b47e..1f00347 100644
|
|
|
function _scalar_wp_die_handler( $message = '' ) {
|
| 2613 | 2613 | } |
| 2614 | 2614 | |
| 2615 | 2615 | /** |
| 2616 | | * Encode a variable into JSON, with some sanity checks |
| | 2616 | * Encode a variable into JSON, with some sanity checks. |
| 2617 | 2617 | * |
| 2618 | 2618 | * @since 4.1.0 |
| 2619 | 2619 | * |
| 2620 | | * @param mixed $data Variable (usually an array or object) to encode as JSON |
| | 2620 | * @param mixed $data Variable (usually an array or object) to encode as JSON. |
| 2621 | 2621 | * @param int $options Options to be passed to json_encode(). Default 0. |
| 2622 | 2622 | * @param int $depth Maximum depth to walk through $data. Must be greater than 0, default 512. |
| 2623 | | * |
| 2624 | | * @return bool|string The JSON encoded string, or false if it cannot be encoded |
| | 2623 | * @return bool|string The JSON encoded string, or false if it cannot be encoded. |
| 2625 | 2624 | */ |
| 2626 | 2625 | function wp_json_encode( $data, $options = 0, $depth = 512 ) { |
| 2627 | | // json_encode has had extra params added over the years. |
| 2628 | | // $options was added in 5.3, and $depth in 5.5. |
| 2629 | | // We need to make sure we call it with the correct arguments. |
| | 2626 | /* |
| | 2627 | * json_encode() has had extra params added over the years. |
| | 2628 | * $options was added in 5.3, and $depth in 5.5. |
| | 2629 | * We need to make sure we call it with the correct arguments. |
| | 2630 | */ |
| 2630 | 2631 | if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) { |
| 2631 | 2632 | $args = array( $data, $options, $depth ); |
| 2632 | | } else if ( version_compare( PHP_VERSION, '5.3', '>=' ) ) { |
| | 2633 | } elseif ( version_compare( PHP_VERSION, '5.3', '>=' ) ) { |
| 2633 | 2634 | $args = array( $data, $options ); |
| 2634 | 2635 | } else { |
| 2635 | 2636 | $args = array( $data ); |
| … |
… |
function wp_json_encode( $data, $options = 0, $depth = 512 ) {
|
| 2637 | 2638 | |
| 2638 | 2639 | $json = call_user_func_array( 'json_encode', $args ); |
| 2639 | 2640 | |
| | 2641 | // If json_encode() was successful, no need to do more sanity checking. |
| 2640 | 2642 | if ( false !== $json ) { |
| 2641 | | // If json_encode was successful, no need to do more sanity checking |
| 2642 | 2643 | return $json; |
| 2643 | 2644 | } |
| 2644 | 2645 | |
| … |
… |
function wp_json_encode( $data, $options = 0, $depth = 512 ) {
|
| 2652 | 2653 | } |
| 2653 | 2654 | |
| 2654 | 2655 | /** |
| 2655 | | * @ignore |
| | 2656 | * Perform sanity checks on data that shall be encoded to JSON. |
| | 2657 | * |
| | 2658 | * @see wp_json_encode() |
| | 2659 | * |
| | 2660 | * @since 4.1.0 |
| | 2661 | * @access private |
| | 2662 | * @internal |
| | 2663 | * |
| | 2664 | * @param mixed $data Variable (usually an array or object) to encode as JSON. |
| | 2665 | * @param int $depth Maximum depth to walk through $data. Must be greater than 0. |
| | 2666 | * @return mixed The sanitized data that shall be encoded to JSON. |
| 2656 | 2667 | */ |
| 2657 | 2668 | function _wp_json_sanity_check( $data, $depth ) { |
| 2658 | 2669 | if ( $depth < 0 ) { |
| … |
… |
function _wp_json_sanity_check( $data, $depth ) {
|
| 2669 | 2680 | $clean_id = $id; |
| 2670 | 2681 | } |
| 2671 | 2682 | |
| 2672 | | // Check the element type, so that we're only recursing if we really have to |
| | 2683 | // Check the element type, so that we're only recursing if we really have to. |
| 2673 | 2684 | if ( is_array( $el ) || is_object( $el ) ) { |
| 2674 | 2685 | $output[ $clean_id ] = _wp_json_sanity_check( $el, $depth - 1 ); |
| 2675 | | } else if ( is_string( $el ) ) { |
| | 2686 | } elseif ( is_string( $el ) ) { |
| 2676 | 2687 | $output[ $clean_id ] = _wp_json_convert_string( $el ); |
| 2677 | 2688 | } else { |
| 2678 | 2689 | $output[ $clean_id ] = $el; |
| 2679 | 2690 | } |
| 2680 | 2691 | } |
| 2681 | | } else if ( is_object( $data ) ) { |
| | 2692 | } elseif ( is_object( $data ) ) { |
| 2682 | 2693 | $output = new stdClass; |
| 2683 | 2694 | foreach ( $data as $id => $el ) { |
| 2684 | 2695 | if ( is_string( $id ) ) { |
| … |
… |
function _wp_json_sanity_check( $data, $depth ) {
|
| 2689 | 2700 | |
| 2690 | 2701 | if ( is_array( $el ) || is_object( $el ) ) { |
| 2691 | 2702 | $output->$clean_id = _wp_json_sanity_check( $el, $depth - 1 ); |
| 2692 | | } else if ( is_string( $el ) ) { |
| | 2703 | } elseif ( is_string( $el ) ) { |
| 2693 | 2704 | $output->$clean_id = _wp_json_convert_string( $el ); |
| 2694 | 2705 | } else { |
| 2695 | 2706 | $output->$clean_id = $el; |
| 2696 | 2707 | } |
| 2697 | 2708 | } |
| 2698 | | } else if ( is_string( $data ) ) { |
| | 2709 | } elseif ( is_string( $data ) ) { |
| 2699 | 2710 | return _wp_json_convert_string( $data ); |
| 2700 | 2711 | } else { |
| 2701 | 2712 | return $data; |
| … |
… |
function _wp_json_sanity_check( $data, $depth ) {
|
| 2705 | 2716 | } |
| 2706 | 2717 | |
| 2707 | 2718 | /** |
| 2708 | | * @ignore |
| | 2719 | * Convert a string to UTF-8, so that it can be safely encoded to JSON. |
| | 2720 | * |
| | 2721 | * @see _wp_json_sanity_check() |
| | 2722 | * |
| | 2723 | * @since 4.1.0 |
| | 2724 | * @access private |
| | 2725 | * @internal |
| | 2726 | * |
| | 2727 | * @param string $string The string which is to be converted. |
| | 2728 | * @return string The checked string. |
| 2709 | 2729 | */ |
| 2710 | 2730 | function _wp_json_convert_string( $string ) { |
| 2711 | 2731 | static $use_mb = null; |