文章来源: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 |
10 |
path
= "/usr/local/bin" |
11 |
URL
= "http://www.example.com/~username" |
PHP脚本測试代码,例如以下:
2 |
$ini_array = parse_ini_file("config.ini"); |
6 |
$ini_array = parse_ini_file("config.ini",
true); |
执行结果例如以下:
06 |
[path]
=> /usr/local/bin |
07 |
[URL]
=> http://www.9streets.cn |
20 |
[path]
=> /usr/local/bin |
21 |
[URL]
=> http://www.9streets.cn |
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
- shiro解析ini文件
来吧,看看shiro是怎么解析ini文件的,这里假设ini文件在classpath下,名字叫做shiro.ini Factory<org.apache.shiro.mgt.SecurityMan ...
- boost::property_tree读取解析ini文件--推荐
boost::property_tree读取解析ini文件 #include "stdafx.h" #include <iostream> #include <b ...
- python解析ini文件
python解析ini文件 使用configparser - Configuration file parser sections() add_section(section) has_section ...
- 解决ini-parser解析ini文件中文乱码问题
rickyah/ini-parser 是一个.net 平台解析ini文件的库,当ini文件中含有中文字符时会乱码. 解决:将文件通过Editplus 等文本编辑工具保存为 utf-8 + bom 格式 ...
- C++ 中使用boost::property_tree读取解析ini文件
boost 官网 http://www.boost.org/ 下载页面 http://sourceforge.net/projects/boost/files/boost/1.53.0/ 我下载的是 ...
- Djanjo 的app 模板路径 静态文件 完整版登录 新手三件套 以及orm
一: django中app的概念: 一个项目可以包含多个应用(app,类似于模块,主页打开多个模块就是多个app) 创建了app,要在配置文件中注册 二:模板路径配置: 1 templates文件夹 ...
- 状态机学习(二)解析INI文件
题目来自<系统程序员成长计划> 作者:李先静. 状态变化如下 #include <string> #include <iostream> using namespa ...
- 《开源分享2》:《开源框架实战宝典电子书V1.0.0》完整版!
经过一个多月的整理,<J2EE开源框架实战宝典>--Tiny文档PDF电子书開始发放,共同拥有将近600页.为喜爱Tiny.热爱Java开源框架的朋友提供更加体贴的文档服务! 下载地址:h ...
- R语言实战(第2版)PDF完整版带书签目录
<R语言实战2>PDF+源代码 下载:https://pan.baidu.com/s/1gP_16Xq9eVmLJ1yOsWD9FA 提取码:l8dx 分享更多python数据分析相关电子 ...
随机推荐
- Android异步操作总结
Android中常常会有一些操作比方网络请求,文件读写.数据库操作.比較耗时,我们须要将其放在非UI线程去处理.此时.我们须要处理任务前后UI的变化和交互.我们须要通过类似js中异步请求处理,这里总结 ...
- SRS微信号和QQ组
联系方式:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Contact $(function () { $('pre.prett ...
- shell 脚本运算符
1.数值 格式: test "num1" opr "num2" [ "num1" opr "num2" ] opr 取值 ...
- 写hive sql和shell脚本时遇到几个蛋疼的问题!
错误一: Hive的where后不能用字段的别名, 错误二: hive的groupby中不能用自己定义函数,否则报错(用嵌套select取代) 错误三: 运行:$ ./hive_game_operat ...
- Android决议具体解释
1.Android手机常见的分辨率 WVGA:800x480 FWVGA:854x480 QHD:960x540 720P:1280x720(SD.standard definition,SD) 10 ...
- super.getClass()与this.getClass()
原文地址:http://leihuang.org/2014/11/14/getClass-method/ 首先看一段代码: import java.util.Date; public class Te ...
- Oracle中merge into的使用 (转)
http://blog.csdn.net/yuzhic/article/details/1896878 http://blog.csdn.net/macle2010/article/details/5 ...
- 【转】Android 收集已发布程序的崩溃信息
我们写程序的时候都希望能写出一个没有任何Bug的程序,期望在任何情况下都不会发生程序崩溃.不过理想是丰满的,现实是骨感的.没有一个程序员能保证自己写的程序绝对不会出现异常崩溃.特别是针对用户数达到几十 ...
- windows 10 install oracle 12c error:[ INS-30131 ]
"[ INS-30131 ] the Initial Setup That Is Required to Run the Installation Program Validation Wa ...
- SQL SERVER 内存分配及常见内存问题(1)——简介
原文:SQL SERVER 内存分配及常见内存问题(1)--简介 一.问题: 1.SQL Server 所占用内存数量从启动以后就不断地增加: 首先,作为成熟的产品,内存溢出的机会微乎其微.对此要了解 ...