wp_json_encode

Кодирует переданную переменную в JSON формат. Проверяет строки и переводит их в UTF-8.

Передаваемая переменная может содержать любой тип данных: массив, строку, объект, число и т.д.

Работает на основе PHP функции json_encode().

Хуков нет.

Возвращает

Логическое/строку: строку JSON или false если не удалось получить строку.

Использование

wp_json_encode( $data, $options, $depth );
$data(смешанный) (обязательный)
Переменная содержащая данные, которые нужно превратить в JSON строку.
$options(число)

Опции, которые будут переданы в функцию PHP json_encode().

Константы объединяемые через | (битовая маска): JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR. Значение каждой константы объясняется на странице JSON констант.

По умолчанию: 0

$depth(число)
Максимальная глубина до которой будет обрабатываться $data. Должна быть больше 0.
По умолчанию: 512

Примеры

#1 Демонстрация работы wp_json_encode()

<?php
function wp_json_encode( $data, $options = 0, $depth = 512 ) {
	/*
	 * json_encode() has had extra params added over the years.
	 * $options was added in 5.3, and $depth in 5.5.
	 * We need to make sure we call it with the correct arguments.
	 */
	if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
		$args = array( $data, $options, $depth );
	} elseif ( version_compare( PHP_VERSION, '5.3', '>=' ) ) {
		$args = array( $data, $options );
	} else {
		$args = array( $data );
	}

	// Prepare the data for JSON serialization.
	$args[0] = _wp_json_prepare_data( $data );

	$json = @call_user_func_array( 'json_encode', $args );

	// If json_encode() was successful, no need to do more sanity checking.
	// ... unless we're in an old version of PHP, and json_encode() returned
	// a string containing 'null'. Then we need to do more sanity checking.
	if ( false !== $json && ( version_compare( PHP_VERSION, '5.5', '>=' ) || false === strpos( $json, 'null' ) ) )  {
		return $json;
	}

	try {
		$args[0] = _wp_json_sanity_check( $data, $depth );
	} catch ( Exception $e ) {
		return false;
	}

	return call_user_func_array( 'json_encode', $args );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *