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 供编程使用
  • 美化视图模式
  • 每段注释显示
  • 格式错误条目的解析警告

示例

数据库配置

试试看 →

一个典型的数据库配置文件。

[database]
host=localhost
port=3306
name=myapp_db
user=admin

[cache]
enabled=true
ttl=3600
driver=redis

PHP 配置

试试看 →

一个 php.ini 片段。

; PHP Configuration
[PHP]
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 64M

[Date]
date.timezone = "America/New_York"

提示

  • 在大多数实现中,段名称不区分大小写。
  • 包含特殊字符的值应使用引号。
  • 注释传统上使用 ; 但某些解析器也接受 #。
  • 同一段中的重复键可能覆盖或创建数组,取决于解析器。

理解 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。

← 返回所有工具