Функция WP_JSON_FILE_DECODE() в WordPress 5.9.0
Функция WP_JSON_FILE_DECODE() предназначена для чтения и декодирования JSON-файлов. Это полезно, если вам нужно работать с данными, хранящимися в формате JSON.
Использование функции
wp_json_file_decode( $filename, $options );
Параметры:
- $filename (строка) (обязательный): Путь к JSON-файлу.
- $options (массив): Опции, используемые с функцией
json_decode(). По умолчанию - пустой массив.
Опции:
- associative (true|false): Опционально. Если установлено в
true, объекты JSON будут возвращены как ассоциативные массивы. Еслиfalse, объекты будут возвращены в виде стандартных объектов. По умолчанию -false.
Возвращаемое значение
Функция возвращает данные, закодированные в JSON, в соответствующем типе PHP. Если файл не найден, либо его содержимое не может быть декодировано, возвращается null.
Пример использования
Получение содержимого JSON файла в виде ассоциативного массива
$path_file = '/path/to/data.json';
$decoded_file = wp_json_file_decode( $path_file, [ 'associative' => true ] );
В этом примере мы декодируем JSON-файл, находящийся по указанному пути. Полученные данные будут в виде ассоциативного массива.
Как работает функция
Вот как устроена функция wp_json_file_decode() в коде:
function wp_json_file_decode( $filename, $options = array() ) {
$result = null;
$filename = wp_normalize_path( realpath( $filename ) );
if ( ! $filename ) {
wp_trigger_error(
__FUNCTION__,
sprintf(
/* translators: %s: Path to the JSON file. */
__( "Файл %s не сущес��вует!" ),
$filename
)
);
return $result;
}
$options = wp_parse_args( $options, array( 'associative' => false ) );
$decoded_file = json_decode( file_get_contents( $filename ), $options['associative'] );
if ( JSON_ERROR_NONE !== json_last_error() ) {
wp_trigger_error(
__FUNCTION__,
sprintf(
/* translators: 1: Path to the JSON file, 2: Error message. */
__( 'Ошибка при декодировании JSON файла по пути %1$s: %2$s' ),
$filename,
json_last_error_msg()
)
);
return $result;
}
return $decoded_file;
}
Объяснение работы кода
-
Проверка пути к файлу:
- Функция использует
realpath()для получения реального пути к файлу. - Если файл не существует, то срабатывает ошибка.
- Функция использует
-
Парсинг опций:
- Опции для
json_decode()задаются в массиве$options.
- Опции для
-
Чтение и декодирование:
- Используется
file_get_contents()для чтения файла иjson_decode()для декодирования содержимого.
- Используется
-
Обработка ошибок:
- Если произошла ошибка при декодировании JSON, также срабатывает ошибка.
Если файл успешно прочитан и декодирован, функция вернет данные в нужном формате.
Заключение
Функция wp_json_file_decode() — это удобный и мощный инструмент для работы с JSON-файлами в WordPress. Она проста в использовании и легка для понимания, что делает её отличным выбором для начинающих пользователей.