Gunther: eval nicht mit mehrdimensionalen Arrays möglich?

Beitrag lesen

Hallo werte Selfgemeinde!

Ich parse ein INI-File mittels parse_ini_file(string $filename [, bool $process_sections ]) und $process_sections = true, sodass ich ein mehrdimensionales Array erhalte.

Nun würde ich die Werte aus diesem Array gerne in einer eval Anweisung verwenden, was aber nicht möglich zu sein scheint.

Da ein Beispiel meistens mehr sagt, als tausend Worte ...:
$ini_array['zweite_gruppe']['pfad'] hat den Wert: "/usr/local/bin"
So liefert das Script die gewünschte Ausgabe:
url: "http://www.example.com/usr/local/bin"

<?php  
$ini_array = parse_ini_file("css/test.ini", true);  
$tmp = $ini_array['zweite_gruppe']['pfad'];  
$str = 'url: \"http://www.example.com$tmp\"';  
eval ("\$str = \"$str\";");  
echo $str . "\n";  
?>

So leider nicht ...,

<?php  
$ini_array = parse_ini_file("css/test.ini", true);  
$str = 'url: \"http://www.example.com$ini_array[zweite_gruppe][pfad]\"';  
eval ("\$str = \"$str\";");  
echo $str . "\n";  
?>

stattdessen erhalte ich:
url: "http://www.example.comArray[pfad]"

Mit einem eindimensionalen Array funktioniert es.

<?php  
$ini_array = parse_ini_file("css/test.ini", true);  
$str = 'url: \"http://www.example.com$ini_array[pfad]\"';  
eval ("\$str = \"$str\";");  
echo $str . "\n";  
?>  

Frage: Ist das prinzipiell nicht möglich (konnte keine konkrete Antwort per Google & Co. finden), oder mach' ich nur etwas falsch?

Für Tipps & Hilfe meinen besten Dank im Voraus.

Gruß Gunther