ZetCode

PHP parse_ini_string 函数

最后修改于 2025 年 4 月 3 日

PHP parse_ini_string 函数解析 INI 格式的配置字符串,并将设置作为关联数组返回。这对于处理存储在字符串而非文件中的配置数据非常有用。

基本定义

parse_ini_string 函数处理 INI 风格的配置字符串。它可以解析节和标量值,并可选择进行类型转换。

语法:parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false。函数在失败时返回 false。

基本 parse_ini_string 示例

这展示了 parse_ini_string 最简单的用法,使用一个基本的 INI 字符串。

basic_parse_ini_string.php
<?php

declare(strict_types=1);

$ini_string = "name = John Doe
email = john@example.com
active = true";

$config = parse_ini_string($ini_string);

print_r($config);

这解析一个简单的 INI 字符串,不带节。输出将是一个关联数组,键为 'name'、'email' 和 'active'。默认情况下,类似布尔值的值将转换为字符串。

使用节进行解析

第二个参数启用节处理,创建多维数组。

sections_parse_ini_string.php
<?php

declare(strict_types=1);

$ini_string = "[user]
name = John Doe
email = john@example.com

[settings]
theme = dark
notifications = 1";

$config = parse_ini_string($ini_string, true);

print_r($config);

启用节后,函数返回一个嵌套数组。每个节成为一个子数组,具有自己的键值对。这对于组织配置很有用。

使用 INI_SCANNER_TYPED 进行类型解析

扫描器模式参数可以启用值的类型转换。

typed_parse_ini_string.php
<?php

declare(strict_types=1);

$ini_string = "debug = 1
ratio = 3.14
enabled = true
disabled = false";

$config = parse_ini_string($ini_string, false, INI_SCANNER_TYPED);

print_r($config);

使用 INI_SCANNER_TYPED 将值转换为其适当的 PHP 类型。整数、浮点数和布尔值将自动从它们的字符串表示形式中检测并转换。

处理 INI 字符串中的数组

INI 格式使用方括号支持类似数组的结构。

array_parse_ini_string.php
<?php

declare(strict_types=1);

$ini_string = "colors[] = red
colors[] = green
colors[] = blue

sizes.small = 10
sizes.medium = 20
sizes.large = 30";

$config = parse_ini_string($ini_string);

print_r($config);

该函数识别顺序数组 ([]) 和关联数组(点表示法)。顺序数组将成为索引 PHP 数组,而关联数组将成为结果中的嵌套键值对。

错误处理

函数在失败时返回 false,因此进行适当的错误检查非常重要。

error_parse_ini_string.php
<?php

declare(strict_types=1);

$ini_string = "name = John Doe
email = john@example.com
= invalid_line";

$config = parse_ini_string($ini_string);

if ($config === false) {
    echo "Failed to parse INI string";
} else {
    print_r($config);
}

此示例演示了在解析格式错误的 INI 数据时如何处理错误。无效行导致函数返回 false。在使用已解析的配置之前,请务必检查返回值。

最佳实践

来源

PHP parse_ini_string 文档

本教程介绍了 PHP parse_ini_string 函数,并提供了实际示例,展示了其在不同场景中的用法。

作者

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

列出 所有 PHP 文件系统函数