INI ”就是英文 “initialization”的頭三個字母的縮寫;當(dāng)然INI file的后綴名也不一定是".ini"也可以是".cfg",".conf ”或者是".txt"。
經(jīng)典格式如下:
INI文件的格式很簡單,最基本的三個要素是:parameters,sections和comments。
什么是parameters?
INI所包含的最基本的“元素”就是parameter;每一個parameter都有一個name和一個value,如下所示:
name = value
什么是sections ?
所有的parameters都是以sections為單位結(jié)合在一起的。所有的section名稱都是獨占一行,并且sections名字都被方括號包圍著([ and ])。在section聲明后的所有parameters都是屬于該section。對于一個section沒有明顯的結(jié)束標(biāo)志符,一個section的開始就是上一個section的結(jié)束,或者是end of the file。Sections一般情況下不能被nested,當(dāng)然特殊情況下也可以實現(xiàn)sections的嵌套。
section如下所示:
[section]
什么是comments ?
在INI文件中注釋語句是以分號“;”開始的。所有的所有的注釋語句不管多長都是獨占一行直到結(jié)束的。在分號和行結(jié)束符之間的所有內(nèi)容都是被忽略的。
注釋實例如下:
;comments text
當(dāng)然,上面講的都是最經(jīng)典的INI文件格式,隨著使用的需求INI文件的格式也出現(xiàn)了很多變種;
INI實例1:
test.ini
; 通用配置,文件后綴.ini
[common]
application.directory = APPLICATION_PATH "/application"
application.dispatcher.catchException = TRUE
; 數(shù)據(jù)庫配置
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"
; 生產(chǎn)環(huán)境配置
[product : common]
; 開發(fā)環(huán)境配置
[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"
; 測試環(huán)境配置
[test : common]
讀取文件:
<?php
$config=parse_ini_file('./test.ini');
print_r($config);
測試打?。?/p>
$ 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,多維數(shù)組:
env.conf
;應(yīng)用程序配置
[application]
env=develop
[dblist]
dbtype[]=test
dbtype[]=dev
dbtype[]=v1
dbtype[]=release
dbtype[]=online
讀取示例:
<?php
//第二個參數(shù)設(shè)置為true,讀取多維數(shù)組
$config=parse_ini_file('./env.conf',TRUE);
print_r($config);
測試打印:
$ php -f test.php
Array
(
[application] => Array
(
[env] => develop
)
[dblist] => Array
(
[dbtype] => Array
(
[0] => test
[1] => dev
[2] => v1
[3] => release
[4] => online
)
)
)