PHP parse_ini_file 函数
最后修改于 2025 年 4 月 3 日
PHP parse_ini_file 函数解析配置文件 INI 文件,并将其内容作为关联数组返回。它对于读取配置非常有用。
基本定义
parse_ini_file 函数读取 INI 文件并将其设置以数组形式返回。它支持节、数组和各种值类型。
语法:parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false。
基本的 parse_ini_file 示例
这展示了 parse_ini_file 读取配置的最简单用法。
basic_parse_ini.php
<?php
declare(strict_types=1);
$config = parse_ini_file('config.ini');
print_r($config);
这会读取“config.ini”并将其内容作为关联数组返回。该文件必须与脚本在同一目录中,或者提供完整路径。
带节的 INI 文件
处理节时,该函数将返回一个多维数组。
sections_parse_ini.php
<?php
declare(strict_types=1);
$config = parse_ini_file('config.ini', true);
print_r($config);
当第二个参数设置为 true 时,节名称将成为数组键。每个节的设置都存储在其名称下的子数组中。
处理不同的值类型
parse_ini_file 会自动将值转换为适当的类型。
value_types.php
<?php
declare(strict_types=1);
$config = parse_ini_file('types.ini');
var_dump($config);
该函数将“true”/“on”/“yes”转换为布尔值 true,将“false”/“off”/“no”转换为 false。数字将转换为整数或浮点数,其他则保持字符串。
INI_SCANNER_TYPED 模式
扫描器模式参数为类型转换提供了更多控制。
scanner_mode.php
<?php
declare(strict_types=1);
$config = parse_ini_file('config.ini', false, INI_SCANNER_TYPED);
var_dump($config);
INI_SCANNER_TYPED 模式会保留看起来像数字的原始字符串值。这可以防止数字字符串被自动转换为整数或浮点数。
使用数组
INI 文件可以使用方括号或重复键来定义数组。
array_values.php
<?php
declare(strict_types=1);
$config = parse_ini_file('arrays.ini');
print_r($config);
数组值可以定义为 key[] = value 或 key[0] = value。该函数会将它们合并到结果中的正确 PHP 数组中。
最佳实践
- 错误处理:始终先检查文件是否存在。
- 安全性:验证 INI 文件路径以防止目录遍历。
- 性能:缓存经常访问的文件的解析结果。
- 验证:解析后验证所需设置是否存在。
来源
本教程通过实际示例展示了 PHP parse_ini_file 函数在不同场景下的用法。
作者
列出 所有 PHP 文件系统函数。