Php/docs/function.parse-ini-file

来自菜鸟教程
跳转至:导航、​搜索

parse_ini_file

(PHP 4, PHP 5, PHP 7)

parse_ini_file解析一个配置文件


说明

parse_ini_file ( string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] ) : array

parse_ini_file() 载入一个由 filename 指定的 ini 文件,并将其中的设置作为一个联合数组返回。

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


参数

filename
要解析的 ini 文件的文件名。
process_sections
如果将最后的 process_sections 参数设为 true,将得到一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 false
scanner_mode
Can either be INI_SCANNER_NORMAL (default) or INI_SCANNER_RAW. If INI_SCANNER_RAW is supplied, then option values will not be parsed.


返回值

成功时以关联数组 array 返回设置,失败时返回 false


范例

Example #1 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"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

Example #2 parse_ini_file() 例子

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


<?phpdefine('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
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => Dodo bird
        )

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

    [third_section] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

        )

)

Example #3 parse_ini_file() parsing a php.ini file

<?php// A simple function used for comparing the results belowfunction yesno($expression){    return($expression ? 'Yes' : 'No');}// Get the path to php.ini using the php_ini_loaded_file() // function available as of PHP 5.2.4$ini_path = php_ini_loaded_file();// Parse php.ini$ini = parse_ini_file($ini_path);// Print and compare the values, note that using get_cfg_var()// will give the same results for parsed and loaded hereecho '(parsed) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL;echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;?>

以上例程的输出类似于:


(parsed) magic_quotes_gpc = Yes
(loaded) magic_quotes_gpc = Yes

注释

Note:

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

Note:

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

Note:

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

参见