ZetCode

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[] = valuekey[0] = value。该函数会将它们合并到结果中的正确 PHP 数组中。

最佳实践

来源

PHP parse_ini_file 文档

本教程通过实际示例展示了 PHP parse_ini_file 函数在不同场景下的用法。

作者

我的名字是 Jan Bodnar,我是一位充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 PHP 文件系统函数