在PHP项目开发中,合理的配置管理能提升项目的可维护性,ini和json是两种常用的配置文件格式,PHP提供了对应的内置函数支持解析这两种格式的内容,下面详细介绍具体的实现方式。

ini配置文件解析
ini是一种结构简单的配置文件格式,适合存储键值对形式的配置参数,PHP内置了parse_ini_file函数可以直接解析ini文件。
ini文件基本格式
标准的ini文件支持分节、键值对、注释,示例如下:
; 这是ini文件的注释,以分号开头 [database] host = 127.0.0.1 port = 3306 username = root password = 123456 [app] debug = true log_path = /var/log/app
使用parse_ini_file解析ini
parse_ini_file函数接收ini文件路径作为参数,返回解析后的关联数组,第二个参数设置为true可以保留分节结构:
<?php
// 解析ini文件,保留分节结构
$config = parse_ini_file('config.ini', true);
// 获取数据库配置
$dbHost = $config['database']['host'];
$dbPort = $config['database']['port'];
// 获取应用配置
$debug = $config['app']['debug'];
$logPath = $config['app']['log_path'];
echo "数据库地址:{$dbHost},端口:{$dbPort}" . PHP_EOL;
echo "调试模式:" . ($debug ? '开启' : '关闭') . PHP_EOL;
?>
parse_ini_file参数说明
该函数还有第三个可选参数,用于指定解析模式,常用模式如下:
- INI_SCANNER_NORMAL:默认模式,解析普通ini内容
- INI_SCANNER_RAW:原样返回字符串,不做类型转换
- INI_SCANNER_TYPED:自动转换值的类型,比如true会转为布尔值,数字转为整型或浮点型
json配置文件解析
json格式的配置文件结构更灵活,支持嵌套数组、对象等复杂结构,PHP通过json_decode函数解析json内容。
json配置文件格式
json文件需要符合标准json语法,键名和字符串值都需要用双引号包裹,示例如下:
{
"database": {
"host": "127.0.0.1",
"port": 3306,
"username": "root",
"password": "123456",
"charset": "utf8mb4"
},
"app": {
"debug": true,
"log_path": "/var/log/app",
"allow_ips": ["127.0.0.1", "192.168.0.1"]
}
}
使用json_decode解析json
首先读取json文件内容,再使用json_decode解析,第二个参数设置为true可以返回关联数组,否则返回对象:
<?php
// 读取json文件内容
$jsonContent = file_get_contents('config.json');
// 解析json,返回关联数组
$config = json_decode($jsonContent, true);
// 错误处理,判断解析是否成功
if (json_last_error() !== JSON_ERROR_NONE) {
die('json解析失败:' . json_last_error_msg());
}
// 获取配置参数
$dbHost = $config['database']['host'];
$allowIps = $config['app']['allow_ips'];
echo "数据库地址:{$dbHost}" . PHP_EOL;
echo "允许的IP地址:" . implode(',', $allowIps) . PHP_EOL;
?>
两种格式对比与选择
ini和json两种配置文件格式各有适用场景,具体对比如下:
| 对比项 | ini格式 | json格式 |
|---|---|---|
| 结构复杂度 | 仅支持简单分节和键值对,不支持复杂嵌套 | 支持数组、对象、多层嵌套,结构灵活 |
| 可读性 | 语法简单,无多余符号,可读性高 | 需要双引号、大括号等符号,结构复杂时可读性稍弱 |
| 解析函数 | parse_ini_file | json_decode |
| 适用场景 | 简单的项目配置、环境变量配置 | 复杂结构配置、前后端通用的配置、API相关配置 |
注意事项
- 解析ini文件时,要确保文件路径正确,且文件有可读权限,否则会返回false
- json文件必须符合标准json语法,单引号、尾随逗号都会导致解析失败,解析后建议通过
json_last_error判断是否有错误 - 如果配置中包含敏感信息,建议将配置文件放在项目根目录之外,避免被直接访问
- 生产环境建议关闭debug配置,避免泄露项目信息
PHPini配置解析json配置解析配置文件parse_ini_file修改时间:2026-07-08 21:21:34