文章来源: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数据分析相关电子 ...
随机推荐
- ./startup.sh: Permission denied
今天在Linux上部署项目,之前报过这个错误,通过下面方式攻克了.如今发出来备份一下: LINUX权限-bash: ./startup.sh: Permission denied 运行./startu ...
- NodeJS常用模块介绍
收集了NodeJS开发中常用的一些模块. MVC框架 - Express Express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站.Express框架建立在Nodejs内置的Ht ...
- VisualStudioOnline协同工作流程
VisualStudioOnline协同工作流程 项目负责人登陆自己的vsonline新建项目就不多说了. 直接从邀请队友开始 项目负责人操作 被邀请的邮箱必须是微软的邮箱(也就是可以登录visual ...
- 如何更好地理解和使用Github
只知道几乎在顶部看到一对Github用通俗易懂的解释: 你或许不懂怎样造一辆凯迪拉克,但你能够驾驶凯迪拉克. 你或许不懂Evernote是用什么技术做出来的,但你也能够使用Evernote. 你或许不 ...
- 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器
原文:第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来配置资源调控器.但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展. ...
- W5500EVB TCP Client模式设置说明
W5500EVB是WIZnet为了方便用户更好了解.使用W5500这款网络芯片所开发的评估板,该板採用了 STM32F103RCT6+W5500 的设计.基于 ARM 的 Cortex-M3 平台.那 ...
- JavaScript变量作用域和内存问题(二)
执行环境是js中特别重要的概念,是指变量或者函数可以访问其他数据,定义自己的行为.每个执行环境都有一个与之相对应的变量对象,执行环境中定义的所有变量和函数都保存在这个变量中,我们看不到这个变量,但是后 ...
- C++学习笔记13-类继承
1. 类模板的 static 成员[不同于C#中的static] 类模板能够像随意其它类一样声明static 成员.下面代码: template <class T> class Foo ...
- java实现生产者消费者问题(转)
引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况: 生产者消费者图 ...
- Rational Rose 2007使用小结
1.Rose怎样隐藏类的属性和操作? 右击类,选Options->Suppress Attributes/Suppress Operations 2.Rose怎样表示类的约束? 在工具箱中选AB ...