像这样的东西应该工作:
$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
和值放入。然后,作为指向数组的“指针”,我循环遍历所有由-ing 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"
}
}
}