parse_ini_file

解析一个配置文件 (PHP 4, PHP 5)
array parse_ini_file ( string filename [, bool process_sections] )

说明

parse_ini_file() 载入一个由 filename 指定的 ini 文件,并将其中的设置作为一个联合数组返回。如果将最后的 process_sections 参数设为 TRUE,将得到一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE

注意:

本函数和 php.ini 文件没有关系,该文件在运行脚本时就已经处理过了。本函数可以用来读取你自己的应用程序的配置文件。

注意:

如果 ini 文件中的值包含任何非字母数字的字符,需要将其括在双引号中(")。

注意:

自 PHP 4.2.1 其本函数也受到安全模式open_basedir 的影响。

注意:

自 PHP 5.0 版本开始,该函数也处理选项值内的新行。

注意:

有些保留字不能作为 ini 文件中的键名,包括:null,yes,no,true 和 false。值为 null,no 和 false 等效于 "",值为 yes 和 true 等效于 "1"。字符 |&~![()" 也不能用在键名的任何地方,而且这些字符在选项值中有着特殊的意义。

ini 文件的结构和 php.ini 的相似。

常量也可以在 ini 文件中被解析,因此如果在运行 parse_ini_file() 之前定义了常量作为 ini 的值,将会被集成到结果中去。只有 ini 的值会被求值。例如:

例 588. sample.ini 的内容

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

例 589. parse_ini_file() 例子

<?php

define
('BIRD', 'Dodo bird');

// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

上例将输出:

Array
(
   [one] => 1
   [five] => 5
   [animal] => Dodo bird
   [path] => /usr/local/bin
   [URL] => http://www.example.com/~username
)
Array
(
   [first_section] => Array
       (
           [one] => 1
           [five] => 5
           [animal] = Dodo bird
       )

   [second_section] => Array
       (
           [path] => /usr/local/bin
           [URL] => http://www.example.com/~username
       )

)

由数字组成的键名和小节名会被 PHP 当作整数来处理,因此以 0 开头的数字会被当作八进制而以 0x 开头的会被当作十六进制。