|
parse_ini_file設定ファイルをパースする 説明
arrayfalse parse_ini_file(string
$filename , bool $process_sections = false , int $scanner_mode = INI_SCANNER_NORMAL )
parse_ini_file は、
ini ファイルの構造は、php.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" [third_section] phpversion[] = "5.0" phpversion[] = "5.1" phpversion[] = "5.2" phpversion[] = "5.3" urls[svn] = "http://svn.php.net" urls[git] = "http://git.php.net" 例2 parse_ini_file の例
定数
(但し
上の例の出力は、 たとえば以下のようになります。 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 ) [urls] => Array ( [svn] => http://svn.php.net [git] => http://git.php.net ) ) 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 ) [urls] => Array ( [svn] => http://svn.php.net [git] => http://git.php.net ) ) )
例3 parse_ini_file による php.ini ファイルのパース
上の例の出力は、 たとえば以下のようになります。 (parsed) magic_quotes_gpc = Yes (loaded) magic_quotes_gpc = Yes
例4 ini ファイルの値の補完
定数を評価することに加えて、文字によっては ini ファイルの値として特別な意味を持つものがあります。
さらに、環境変数や以前定義された設定オプション
(get_cfg_var も参照ください) は、
; | は ビット演算の OR is used for bitwise OR three = 2|3 ; & は ビット演算の AND four = 6&5 ; ^ は ビット演算の XOR five = 3^6 ; ~ は ビット演算の NOT negative_two = ~1 ; () はグループ化に使います seven = (8|7)&(6|5) ; 環境変数 PATH を展開します path = ${PATH} ; 設定オプション 'memory_limit' を展開します configured_memory_limit = ${memory_limit}
例5 文字をエスケープする
文字によっては、ダブルクォートで囲まれた文字列の中で特別な意味を持つ場合があり、
その場合、バックスラッシュでエスケープしなければなりません。
特別な意味を持つのは、文字列の境目の印となるダブルクォート quoted = "She said \"Exactly my point\"." ; Results in a string with quote marks in it. hint = "Use \\\" to escape double quote" ; Results in: Use \" to escape double quote Windows ライクなパスについては例外があります。 クォートされた文字列のすぐ後に改行文字が続いた場合、 末尾のバックスラッシュはエスケープする必要がないというものです。 save_path = "C:\Temp\" 複数行にまたがる値で、改行文字が直後にあるダブルクォート文字をエスケープする必要がある場合、 次のようにして値を連結することでそれを実現できます。 (ダブルクォートで囲まれた文字列がひとつあり、その直後にもうひとつの文字列が続きます) long_text = "Lorem \"ipsum\""" dolor" ; Results in: Lorem "ipsum"\n dolor
特別な意味を持つ別の文字として、 code = "\${test}"
文字のエスケープは、
ini ファイルのパーサーは、標準的なエスケープシーケンス
( 注意
参考
|