parse_ini_file
(PHP 4, PHP 5, PHP 7, PHP 8)
parse_ini_file — 解析一個配置檔案
說明
$filename
, bool $process_sections
= false, int $scanner_mode
= INI_SCANNER_NORMAL): array
parse_ini_file() 載入一個由
filename
指定的 ini
檔案,並將其中的設定作為一個聯合陣列返回。
ini 檔案的結構和 php.ini 的相似。
參數
-
filename
-
要解析的 ini 檔案的檔名。
-
process_sections
-
如果將最後的
process_sections
參數設為true
,將得到一個多維陣列,包括了配置檔案中每一節的名稱和設定。process_sections
的預設值是false
。 -
scanner_mode
-
Can either be
INI_SCANNER_NORMAL
(default) orINI_SCANNER_RAW
. IfINI_SCANNER_RAW
is supplied, then option values will not be parsed.
返回值
成功時以關聯陣列 array 返回設定,失敗時返回 false
。
範例
示例 #1 sample.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"
示例 #2 parse_ini_file() 例子
常量也可以在 ini 檔案中被解析,因此如果在執行 parse_ini_file() 之前定義了常量作為 ini 的值,將會被整合到結果中去。只有 ini 的值會被求值。例如:
<?php
define('BIRD', 'Dodo bird');
// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);
// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);
?>
以上例程的輸出類似於:
Array ( [one] => 1 [five] => 5 [animal] => Dodo bird [path] => /usr/local/bin [URL] => http://www.example.com/~username [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) ) Array ( [first_section] => Array ( [one] => 1 [five] => 5 [animal] => Dodo bird ) [second_section] => Array ( [path] => /usr/local/bin [URL] => http://www.example.com/~username ) [third_section] => Array ( [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) ) )
示例 #3 parse_ini_file() parsing a php.ini file
<?php
// A simple function used for comparing the results below
function yesno($expression)
{
return($expression ? 'Yes' : 'No');
}
// Get the path to php.ini using the php_ini_loaded_file()
// function available as of PHP 5.2.4
$ini_path = php_ini_loaded_file();
// Parse php.ini
$ini = parse_ini_file($ini_path);
// Print and compare the values, note that using get_cfg_var()
// will give the same results for parsed and loaded here
echo '(parsed) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>
以上例程的輸出類似於:
(parsed) magic_quotes_gpc = Yes (loaded) magic_quotes_gpc = Yes
註釋
注意:
本函式和 php.ini 檔案沒有關係,該檔案在執行指令碼時就已經處理過了。本函式可以用來讀取你自己的應用程式的配置檔案。
注意:
如果 ini 檔案中的值包含任何非字母數字的字元,需要將其括在雙引號中(")。
注意: 有些保留字不能作為 ini 檔案中的鍵名,包括:null,yes,no,true 和 false。值為 null,no 和 false 等效于 "",值為 yes 和 true 等效于 "1"。字元
{}|&~![()"
也不能用在鍵名的任何地方,而且這些字元在選項值中有著特殊的意義。