Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.73 KB

README.md

File metadata and controls

34 lines (25 loc) · 1.73 KB

invalid JSON fix

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(), ибо вы либо ставите пакет и юзаете хак везде, либо нет.