# Проверка INI

Проверяйте файлы конфигурации INI, например php.ini, my.cnf, записи рабочего стола или настройки инструментов, прежде чем из-за них сервис откажется запускаться. Валидатор читает каждую строку, распознает секции, пары ключей и значений, комментарии и значения в кавычках. Он сообщает о непонятных строках, незакрытых заголовках секций, пустых ключах и незакрытых кавычках. Кроме того, он отмечает повторяющиеся ключи и секции и перечисляет каждую секцию с ее ключами, чтобы вы могли сразу оценить структуру.

## Часто задаваемые вопросы

### Как валидатор определяет, что файл INI допустим?

Каждая непустая строка должна быть заголовком секции, например [database], ключом со значением, например host = localhost, или комментарием. Ошибкой считаются строки, не относящиеся ни к одному из этих типов, незакрытые заголовки секций, пустые ключи и незакрытые значения в кавычках. Такие ошибки делают файл недопустимым и отображаются с номерами строк.

### У INI нет единого стандарта. Какие правила использует валидатор?

Валидатор следует распространенному диалекту, который используют PHP, MySQL и многие инструменты: ключи и значения разделяются знаком = или знаком :, если знака = нет; комментарии начинаются с ; или #, а ; или # после пробела в значении без кавычек начинает встроенный комментарий. Имена секций могут содержать пробелы, точки и кавычки, как в секциях в стиле Git. Типы значений не проверяются, поскольку в INI нет типов данных.

### Что происходит с повторяющимися ключами?

Если ключ определен дважды в одной секции, валидатор выдает предупреждение с номером строки второго определения. Большинство парсеров INI оставляют последнее значение, поэтому предыдущее игнорируется без уведомления. Файл по-прежнему считается допустимым.

### Что происходит с повторяющимися секциями?

Если заголовок секции встречается повторно, валидатор выдает предупреждение, а ключи объединяются с ключами первого вхождения. Некоторые программы обрабатывают повторяющиеся секции по-разному, поэтому обычно лучше объединить их.

### Поддерживаются ли ключи-массивы, например extension[]?

Да. Значения ключей, оканчивающихся на [], собираются в список, как в файлах конфигурации PHP, и повторение таких ключей не считается дубликатом. В списке секций ключ отображается один раз.

### Что такое глобальные ключи?

Ключи, расположенные перед первым заголовком секции, не относятся ни к одной секции. В результатах они отображаются как глобальные ключи. Многие инструменты используют их как значения по умолчанию или настройки верхнего уровня.

### Как обрабатываются значения в кавычках?

В значениях в двойных кавычках могут содержаться ;, # и =; в них поддерживаются экранированные символы \", \\, \n и \t. Значения в одинарных кавычках воспринимаются буквально. Если значение в кавычках не закрыто в той же строке, возникает ошибка. Пробелы вокруг значений без кавычек удаляются.

### Какая часть структуры отображается?

В результатах перечислены все секции с количеством ключей и их именами: до 200 секций и 50 ключей в каждой. Также указано общее количество секций и ключей. Отображается до 20 ошибок и 20 предупреждений, а для остальных приводится их количество.

### Распознаются ли вложенные секции, например [a.b]?

Имена секций сохраняются точно в том виде, как они записаны. Поэтому [a.b] — это секция с именем a.b, а не подраздел a. То, считает ли программа точки обозначением вложенности, зависит от самой программы. Валидатор проверяет только, что имя не пустое, а заголовок закрыт.

### Каков максимальный размер файла и можно ли преобразовать его в другой формат?

Размер входных данных может составлять до 5 MiB. Чтобы преобразовать корректный INI-файл в JSON, YAML, TOML или другой формат, используйте конвертер форматов данных, который преобразует секции в объекты.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
