實戰parse_ini_file()及擴展函數解析ini文件完整版

在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

相關文章
相關標籤/搜索