php的解析配置文件,解析一个配置文件 - PHP 7 中文文档

(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](php7/language.types.array) 返回设置,失败时返回 FALSE。

更新日志

版本

说明

5.3.0

Added optional scanner_mode parameter.

Single quotes may now be used around variable assignments.

Hash marks (#) may no longer be used as comments

and will throw a deprecation warning if used.

5.2.7

On syntax error this function will return FALSE rather than an empty

array.

5.2.4

由数字组成的键名和小节名会被 PHP 当作[整数](php7/language.types.integer)来处理,因此以

0 开头的数字会被当作八进制而以 0x 开头的会被当作十六进制。

5.0.0

该函数也开始处理选项值内的新行。

4.2.1

本函数也开始受到[安全模式](php7/ini.sect.safe-mode)和

[open_basedir](php7/ini.core) 的影响。

范例

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() 例子

[常量](php7/language.constants)也可以在 ini

文件中被解析,因此如果在运行 parse_ini_file()

之前定义了常量作为 ini 的值,将会被集成到结果中去。只有 ini

的值会被求值。例如:

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

[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

// A simple function used for comparing the results below

function 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 here

echo '(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"。字符

{}|&~![()" 也不能用在键名的任何地方,而且这些字符在选项值中有着特殊的意义。

参见

[parse_ini_string()](php7/function.parse-ini-string) – 解析配置字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值