实战parse_ini_file()及扩展函数解析ini文件完整版

在PHP网站开发的过程当中,每每会用到读取ini参数配置文件,好比须要访问一些复杂的借口,就能够直接在参数配置文件里面修改参数,而后再php脚本里面直接读取执行。而php有一个能够直接读取ini配置文件的函数parse_ini_file(),并以数组的形式返回。下面详细讲解一下采用PHP内置函数parse_ini_file,读取ini配置文件。php

参数说明:array parse_ini_file ( string $filename [, bool $process_sections ] ) parse_ini_file() 载入一个由 filename 指定的 ini 文件,返回一个联合数组。若是将 process_sections 参数设为 TRUE,将获得一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE,返回将每一节合并后的数组。ini文件注释用;符号数组

下面开始实例详解:函数

config.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"

PHP脚本测试代码,以下:网站

<?php
$ini_array = parse_ini_file("config.ini");
print_r($ini_array);

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

运行结果以下:url

Array
(
[one] => 1
[five] => 5
[animal] => BIRD
[path] => /usr/local/bin
[URL] => http://www.9streets.cn
)
Array
(
[test] => Array
(
[one] => 1
[five] => 5
[animal] => BIRD
)

[beta] => Array
(
[path] => /usr/local/bin
[URL] => http://www.9streets.cn
)

)


parse_ini_file()函数,没法解析ini文件中的多维数组形式,这就须要本身手动加入下面的parse_ini_file_multi()方法,来解析大于三维数组的ini文件。特别说明的是,在PHP官网的手册中的parse_ini_file_multi()存在一个错误,我在代码中已经修复。
spa

不过在笔者程序开发的过程当中,遇到了另外一个难题,我须要把parse_ini_file()函数解析后的多维数组的键值对,放到接口的url中调用,这样的话,多维数组就出现了问题,即使能够实现效果也会面临很是臃肿的遍历过程。
在这里,笔者采用了另一种方法,将ini配置文件中的多维数组的形式,均转化为一维数组,也就是“=”前面的变量,直接以类型数组样式的字符串赋值,“=”后面的值也就是多维数组的最终取值。
code

该功能的具体实现和操做,请查看个人 我的网址:http://www.phpthinking.com/archives/587orm

相关文章
相关标签/搜索