parse_ini_file

(PHP 4, PHP 5)

parse_ini_file -- 設定ファイルをパースする

説明

array parse_ini_file ( string filename [, bool process_sections] )

parse_ini_file() は、 filename で指定した ini ファイルをロードし、 連想配列としてその設定値を返します。 直近の process_sections パラメータに TRUE を設定することにより、セクション名と設定が含まれた多次元の配列を 得ることができます。デフォルトでは、 process_sectionsFALSE です。

注意: この関数は、php.ini ファイルには何もしません。 このファイルはスクリプトを実行している時には既に処理されています。 この関数は、アプリケーション個有の設定ファイルを読み込む際に使用可能です。

注意: ini ファイル上の値に英数字ではないものがある場合、 ダブルクォート(")で囲う必要があります。

注意: PHP 4.2.1 以降では、この関数は セーフモードopen_basedir の影響を受けます。

注意: PHP 5.0.0 以降、この関数は値の中の改行も処理します。

注意: ini ファイル上でキーとして使ってはいけない単語があります。 それらは null, yes, no, true, false などが含まれます。 null, no および false は "" となり、yes および true は "1" となります。 次の文字 {}|&~![()" は、キーで使ってはいけません。 また、値の中で特別な意味を持ちます。

初期ファイルの構造は、php.ini の構造に似ています。

定数も ini ファイル上でパースされます。 そのため、parse_ini_file() をコールする前に ini ファイル上の値として定数を定義した場合、返り値に統合されます。 ini ファイル上の値だけが評価されます。以下は例です:

例 1. sample.ini の内容

; これは設定ファイルのサンプルです。
; php.ini と同様、';' で始まる行はコメントです。

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

例 2. parse_ini_file() の例

<?php

define
('BIRD', 'Dodo bird');

// セクションを無視してパースします。
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// セクションを意識してパースします。
$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
)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] = Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

数字から始まるキーおよびセクション名は、PHP では 整数 として評価されます。 よって、0 で始まる数字は 8 進数として評価され、0x で始まる数字は 16 進数として評価されます。