etconsilium/php-json-fix

Proxy json_decode() and Fix invalid JSON (via runkit)

dev-master 2020-10-22 21:10 UTC

This package is auto-updated.

Last update: 2024-03-23 04:42:05 UTC


README

installation

composer.json

{
	require: {
		"etconsilium/php-json-fix": "*"
	}
}

description

Скрипт чинит некоторые известные проблемы:

  • пустые значения
  • забытые запятые в конце массивов
  • спецсимволы вроде \x0
  • в качестве бонуса удаляет js-style комментарии
  • @TODO: требуется обработка кавычек: как замена одиночных на двойные, так и закавычивание голых данных

Сразу раскрою секрет: всё это во имя вселенской справедливости и удобной работы с конфигами. Но, чтобы не возиться с обёртками данных каждый раз, используется жёсткий хак с подменой стандартных функции PHP через runkit. Так как APD и runkit являются библиотеками pecl, и при этом не имеют работающих пакетов для акутальных версий языка, рункит собирается из исходников. Детали установки см. composer.json & pre-install.sh. Проверено на Debian8 + PHP5.6.2-cli.

Источники вдохновения перечислены в коде.

enjoy! :)

ps: считаю излишним писать объектный интерфейс, ибо тысячи их, или функции вроде json_fix() и json_restore(), ибо вы либо ставите пакет и юзаете хак везде, либо нет.