在PHP網站開發的過程當中,每每會用到讀取ini參數配置文件,好比須要訪問一些複雜的藉口,就能夠直接在參數配置文件裏面修改參數,而後再php腳本里面直接讀取執行。而php有一個能夠直接讀取ini配置文件的函數parse_ini_file(),並以數組的形式返回。下面詳細講解一下采用PHP內置函數parse_ini_file,讀取ini配置文件。php
參數說明:array parse_ini_file ( string $filename [, bool $process_sections ] ) parse_ini_file() 載入一個由 filename 指定的 ini 文件,返回一個聯合數組。若是將 process_sections 參數設爲 TRUE,將獲得一個多維數組,包括了配置文件中每一節的名稱和設置。process_sections 的默認值是 FALSE,返回將每一節合併後的數組。ini文件註釋用;符號數組
下面開始實例詳解:函數
config.ini(能夠設置爲其它類型後綴名)以下:測試
; This is a sample configuration file ; Comments start with ';', as in php.ini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = "/usr/local/bin" URL = "http://www.example.com/~username" [third_section] phpversion[] = "5.0" phpversion[] = "5.1" phpversion[] = "5.2" phpversion[] = "5.3"
PHP腳本測試代碼,以下:網站
<?php $ini_array = parse_ini_file("config.ini"); print_r($ini_array); // Parse with sections $ini_array = parse_ini_file("config.ini", true); print_r($ini_array);
運行結果以下:url
Array ( [one] => 1 [five] => 5 [animal] => BIRD [path] => /usr/local/bin [URL] => http://www.9streets.cn ) Array ( [test] => Array ( [one] => 1 [five] => 5 [animal] => BIRD ) [beta] => Array ( [path] => /usr/local/bin [URL] => http://www.9streets.cn ) )
parse_ini_file()函數,沒法解析ini文件中的多維數組形式,這就須要本身手動加入下面的parse_ini_file_multi()方法,來解析大於三維數組的ini文件。特別說明的是,在PHP官網的手冊中的parse_ini_file_multi()存在一個錯誤,我在代碼中已經修復。
spa
不過在筆者程序開發的過程當中,遇到了另外一個難題,我須要把parse_ini_file()函數解析後的多維數組的鍵值對,放到接口的url中調用,這樣的話,多維數組就出現了問題,即使能夠實現效果也會面臨很是臃腫的遍歷過程。
在這裏,筆者採用了另一種方法,將ini配置文件中的多維數組的形式,均轉化爲一維數組,也就是「=」前面的變量,直接以類型數組樣式的字符串賦值,「=」後面的值也就是多維數組的最終取值。
code
該功能的具體實現和操做,請查看個人 我的網址:http://www.phpthinking.com/archives/587orm