Moin moin,
ich hab ein PHP-Script welches über die Konsole gestartet wird und als Übergabeparameter die Variablen bekommt, wie sie normalerweise in der URL-Vorkommen (ganz ursprünglich kommen die Variablen auch da her, da das PHP-Script von einem Perl-Script gestartet wird, welches von einem PHP-Script eines Webservers gestartet wird (is kompliziert, aber unwichtig)).
Das PHP-Script hat die Aufgabe die über die Konsole übergebenen Variablen dem anschließend aufgerufenen weiteren PHP-Script zur Verfügung zu stellen.
Das ganze sieht so aus:
<?
$coca_file=$argv[1];
$arg_array=split("[?&]",$coca_file);
$file_arg=1;
foreach ($arg_array as $arg)
{
if ($file_arg) { $file_arg=0; $coca_file=$arg; continue; }
$arg_subarray=split("=",$arg);
if (preg_match("/^(.*?)\[(.*?)\]/",$arg_subarray[0],$result_array))
{
$var=$result_array[1];
$key=$result_array[2];
$value=$arg_subarray[1];
if (!is_array($$var)) { $$var=Array(); }
$$var[$key]=$value;
print "\n<br>\nDEBUG:".$var."[".$key."]=".$value.";\n<br>";
}
else
{
$var=$arg_subarray[0];
$value=$arg_subarray[1];
$$var=$value;
}
}
print_r(get_defined_vars());
include ($coca_file);
?>
Die Übernahme der Variablen klappt soweit problemlos, aber wenn Arrays ins Spiel kommen macht das Skript Blödsinn. Die Zuweisung von $var, $key und $value passt aber.
Die Frage ist also: Wie mache ich aus den drei Variablen $var, $key und $value ein Array-Element $$var[$key]=$var (ohne evtl. bestehende Elemente des Arrays zu eliminieren).