|
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 ファイルのパーサーは、標準的なエスケープシーケンス
( 注意
参考
|