文章来源:PHP开发学习门户

地址:http://www.phpthinking.com/archives/587

在PHP站点开发的过程中,往往会用到读取ini參数配置文件,比方须要訪问一些复杂的借口,就能够直接在參数配置文件中面改动參数,然后再php脚本里面直接读取运行。而php有一个能够直接读取ini配置文件的函数parse_ini_file(),并以数组的形式返回。以下具体解说一下採用PHP内置函数parse_ini_file,读取ini配置文件。

參数说明:array parse_ini_file ( string $filename [, bool $process_sections ] ) parse_ini_file() 加载一个由 filename 指定的 ini 文件,返回一个联合数组。假设将 process_sections 參数设为 TRUE,将得到一个多维数组,包含了配置文件里每一节的名称和设置。process_sections 的默认值是 FALSE,返回将每一节合并后的数组。ini文件凝视用;符号

以下開始实例具体解释:

config.ini(能够设置为其他类型后缀名)例如以下:

01 ;
This is a sample configuration file
02 ;
Comments start with 
';'as in
php.ini
03  
04 [first_section]
05 one
= 1
06 five
= 5
07 animal
= BIRD
08  
09 [second_section]
10 path
"/usr/local/bin"
11 URL
"http://www.example.com/~username"
12  
13 [third_section]
14 phpversion[]
"5.0"
15 phpversion[]
"5.1"
16 phpversion[]
"5.2"
17 phpversion[]
"5.3"

PHP脚本測试代码,例如以下:

1 <?php
2 $ini_array parse_ini_file("config.ini");
3 print_r($ini_array);
4  
5 //
Parse with sections
6 $ini_array parse_ini_file("config.ini",
true);
7 print_r($ini_array);

执行结果例如以下:

01 Array
02 (
03 [one]
=> 1
04 [five]
=> 5
05 [animal]
=> BIRD
06 [path]
=> /usr/local/bin
07 [URL]
=> http:
//www.9streets.cn
08 )
09 Array
10 (
11 [test]
=> Array
12 (
13 [one]
=> 1
14 [five]
=> 5
15 [animal]
=> BIRD
16 )
17  
18 [beta]
=> Array
19 (
20 [path]
=> /usr/local/bin
21 [URL]
=> http:
//www.9streets.cn
22 )
23  
24 )

parse_ini_file()函数,无法解析ini文件里的多维数组形式,这就须要自己手动增加以下的parse_ini_file_multi()方法,来解析大于三维数组的ini文件。特别说明的是,在PHP官网的手冊中的parse_ini_file_multi()存在一个错误,我在代码中已经修复。

只是在笔者程序开发的过程中,遇到了还有一个难题,我须要把parse_ini_file()函数解析后的多维数组的键值对,放到接口的url中调用,这种话,多维数组就出现了问题,即便能够实现效果也会面临很臃肿的遍历过程。

在这里,笔者採用了第二种方法,将ini配置文件里的多维数组的形式,均转化为一维数组,也就是“=”前面的变量,直接以类型数组样式的字符串赋值,“=”后面的值也就是多维数组的终于取值。

该功能的详细实现和操作,请查看我的 个人网址:http://www.phpthinking.com/archives/587

最新文章

  1. window 链接方式
  2. java基础(环境设置,基础语法,函数数组)
  3. 【XLL API 函数】xlSet
  4. 二十二、【轻量级开源框架】EFW框架Web前端开发之JqueryEasyUI
  5. Tomcat 在win7/win8 系统下tomcat-users.xml.new(拒绝访问)解决方法
  6. PythonOCC 3D图形库学习—创建立方体模型
  7. Objective-C的基础语法总结
  8. 各种matrix
  9. C++ 的隱式型別轉換
  10. js格式化数字,金额按千位逗号分隔,负号用括号
  11. Eclipse中安装MemoryAnalyzer插件及使用
  12. sudoku--SE第二次作业
  13. C#图片压缩上传
  14. CSS iconfont阿里巴巴矢量图库在开发中实战使用
  15. Archive required for library “xxx” cannot be read or is not a valid zip file报错解决
  16. Creating a Cron Job in K8S
  17. [APIO2014]序列分割 --- 斜率优化DP
  18. SublimeText3搭建go语言开发环境(windows)
  19. HDU 3605 最大流+状态压缩
  20. c++通用写文件调试代码

热门文章

  1. 用bat 删除当前文件夹下的某类文件
  2. 再谈Hibernate级联删除——JPA下的Hibernate实现一对多级联删除CascadeType.DELETE_ORPHAN
  3. Java知多少(4)J2SE、J2EE、J2ME的区别
  4. 11gR2 Database Services for &amp;quot;Policy&amp;quot; and &amp;quot;Administrator&amp;quot; Managed Databases (文件 ID 1481647.1)
  5. TCP与UDP的侵略性
  6. oracle 解锁scott账户
  7. Java中finally你知多少
  8. JAVA基础实例(三)--排序
  9. React JS高速新手教程
  10. Android 墙纸设置代码 详细说明