このようなものが動作するはずです:
$config = array();
foreach( file( 'config.txt') as $line) {
list( $keys, $value) = explode( '=', $line);
$temp =& $config;
foreach( explode( '.', $keys) as $key)
{
$temp =& $temp[$key];
}
$temp = trim( $value);
}
一度に各行を読み取った後、-ing onによってすべてのキー$keys
と値を取得します。次に、配列への「ポインター」として使用して、 onによって個別に抽出されたすべての をループし、多次元配列を形成します。すべてのキーが使い果たされたら、そのエントリに値を割り当て、次の行に移動します。$value
explode()
=
$temp
$config
$keys
explode()
.
デモで非常にうまく機能していることがわかります。入力の場合、これにより次のような配列が生成されます。
array(3) {
["id"]=>
string(3) "www"
["session"]=>
array(2) {
["timeout"]=>
string(3) "120"
["server"]=>
array(2) {
[0]=>
array(3) {
["host"]=>
string(9) "127.0.0.1"
["port"]=>
string(4) "1111"
["id"]=>
string(8) "session1"
}
[1]=>
array(3) {
["host"]=>
string(9) "127.0.0.1"
["port"]=>
string(4) "1111"
["id"]=>
string(8) "session2"
}
}
}
["image"]=>
array(3) {
["width"]=>
string(3) "640"
["height"]=>
string(3) "480"
["watermark"]=>
array(2) {
["small"]=>
string(10) "wsmall.png"
["normal"]=>
&string(11) "wnormal.png"
}
}
}