INI 配置解析器
INI 文件是一种带有段和键值对的简单配置格式,历史上被 Windows 使用,至今仍在许多应用程序中常见(php.ini、my.cnf、setup.cfg)。此工具解析 INI 语法,显示段和属性,并可转换为 JSON。
规范
常见用例
- 检查 php.ini 或 MySQL my.cnf 配置
- 解析 Python setup.cfg 或 tox.ini 文件
- 查看 Git 配置文件(.gitconfig)
- 调试 Windows 应用程序设置
- 将传统 INI 配置转换为 JSON 或 YAML
功能
- 解析 [section] 段头和 key=value 键值对
- 处理注释(; 和 # 前缀)
- 支持带转义序列的引号值
- 显示全局属性(任何段之前的内容)
- 转换为 JSON 供编程使用
- 美化视图模式
- 每段注释显示
- 格式错误条目的解析警告
示例
提示
- 在大多数实现中,段名称不区分大小写。
- 包含特殊字符的值应使用引号。
- 注释传统上使用 ; 但某些解析器也接受 #。
- 同一段中的重复键可能覆盖或创建数组,取决于解析器。
理解 INI 配置解析器
INI 文件是一种使用段(方括号)和键值对的简单配置格式。尽管没有正式规范,该格式自 MS-DOS 和 Windows 早期就被广泛使用。PHP 使用 php.ini,Git 使用 .gitconfig(INI 风格),Windows 应用程序使用 .ini 文件,许多遗留系统依赖此格式。
基本结构将 key=value 键值对按 [section] 段头分组。值通常是字符串,但某些解析器会解释数字和布尔值。注释使用分号(;)或井号(#)。多行值、嵌套段和转义序列因实现而异,因为没有权威标准。
INI 文件填补了扁平键值格式(如 .env 文件)和结构化格式(如 TOML 和 YAML)之间的空白。它们提供段级组织,而不需要嵌套数据结构的复杂性。对于具有逻辑分组的简单应用程序配置,INI 仍然是一个实用的选择。
缺乏标准化是 INI 的主要弱点。不同的解析器在注释字符、键是否区分大小写、如何处理重复键和段以及值是否可以跨多行等问题上存在分歧。在启动新项目时,TOML 通常是更好的选择,因为它提供相同的基于段的组织,并有正式规范和更丰富的数据类型。
TOML 被设计为 INI 的现代替代品,带有正式规范。它增加了原生数据类型(整数、浮点数、布尔值、日期、数组)、嵌套表、表数组和多行字符串——这些都是 INI 完全缺乏的功能。对于新项目,TOML 是更好的选择;INI 主要与现有配置文件的遗留兼容性相关。
键的大小写敏感性因实现而异。Windows INI 函数不区分大小写,Python 的 configparser 默认对键不区分大小写,PHP 的 parse_ini_file 对键区分大小写但对段不区分大小写,Git config 对段名和键名都不区分大小写。始终查看你特定解析器的文档。值中特殊字符的处理同样不一致——有些解析器支持用双引号引用值,有些支持转义序列,有些则将等号后的所有内容视为字面值。当需要特殊字符时,请验证你特定解析器的行为,或考虑迁移到 TOML。