ini文件格式和读取

INI ”就是英文 “initialization”的头三个字母的缩写;当然INI file的后缀名也不一定是".ini"也可以是".cfg",".conf ”或者是".txt"

经典格式如下:

INI文件的格式很简单,最基本的三个要素是:parameters,sections和comments。

什么是parameters?

INI所包含的最基本的“元素”就是parameter;每一个parameter都有一个name和一个value,如下所示:

name = value

什么是sections ?

所有的parameters都是以sections为单位结合在一起的。所有的section名称都是独占一行,并且sections名字都被方括号包围着([ and ])。在section声明后的所有parameters都是属于该section。对于一个section没有明显的结束标志符,一个section的开始就是上一个section的结束,或者是end of the file。Sections一般情况下不能被nested,当然特殊情况下也可以实现sections的嵌套。

section如下所示:

[section]

什么是comments ?

在INI文件中注释语句是以分号“;”开始的。所有的所有的注释语句不管多长都是独占一行直到结束的。在分号和行结束符之间的所有内容都是被忽略的。

注释实例如下:

;comments text

当然,上面讲的都是最经典的INI文件格式,随着使用的需求INI文件的格式也出现了很多变种;

INI实例1:

test.ini

; 通用配置,文件后缀.ini
[common]

application.directory = APPLICATION_PATH  "/application"
application.dispatcher.catchException = TRUE


; 数据库配置
resources.database.master.driver = "pdo_mysql"
resources.database.master.hostname = "127.0.0.1"
resources.database.master.port = 3306
resources.database.master.database = "database"
resources.database.master.username = "username"
resources.database.master.password = "password"
resources.database.master.charset = "UTF8"


; 生产环境配置
[product : common]

; 开发环境配置
[develop : common]

resources.database.slave.driver = "pdo_mysql"
resources.database.slave.hostname = "127.0.0.1"
resources.database.slave.port = 3306
resources.database.slave.database = "test"
resources.database.slave.username = "root"
resources.database.slave.password = "123456"
resources.database.slave.charset = "UTF8"

; 测试环境配置
[test : common]

读取文件:

测试打印:

$ php -f test.php
Array
(
    [application.directory] => APPLICATION_PATH/application
    [application.dispatcher.catchException] => 1
    [resources.database.master.driver] => pdo_mysql
    [resources.database.master.hostname] => 127.0.0.1
    [resources.database.master.port] => 3306
    [resources.database.master.database] => database
    [resources.database.master.username] => username
    [resources.database.master.password] => password
    [resources.database.master.charset] => UTF8
    [resources.database.slave.driver] => pdo_mysql
    [resources.database.slave.hostname] => 127.0.0.1
    [resources.database.slave.port] => 3306
    [resources.database.slave.database] => test
    [resources.database.slave.username] => root
    [resources.database.slave.password] => 123456
    [resources.database.slave.charset] => UTF8
)

INI实例2,多维数组:

env.conf

;应用程序配置
[application]
env=develop

[dblist]
dbtype[]=test
dbtype[]=dev
dbtype[]=v1
dbtype[]=release
dbtype[]=online

读取示例:

测试打印:

$ php -f test.php
Array
(
    [application] => Array
        (
            [env] => develop
        )

    [dblist] => Array
        (
            [dbtype] => Array
                (
                    [0] => test
                    [1] => dev
                    [2] => v1
                    [3] => release
                    [4] => online
                )

        )

)

你可能感兴趣的:(ini文件格式和读取)