I'm writing a script where the user can input certain items, which are then converted to php code and written to a file. A cron job will then be used to run that file. For the most part, it is all working fine but I am having problems get an array written correctly. Here is an example:
In the main code that displays for the user:
PHP Code:
//collect data from form
$data = array();
$data['name'] = 'some name';
$data['email'] = 'email address';
$data['options'] = array(0 => "opt1",
1 => "opt2",
2 => "opt3");
$fp = array();
PrepareData($fp, $data);
WriteFile($fp);
For the PrepareFile function
PHP Code:
PrepareFile(&$fp, $data) {
$fp[] = "\$name = " . $data['name'] . "; \n";
$fp[] = "\$email = " . $data['email'] . "; \n";
$fp[] = "\$db_query = mysql_query(\"select * from table\") or die(mysql_error());" . "\n";
$fp[] = "while(\$db = mysql_fetch_array(\$db_query, MYSQL_ASSOC)) {" . "\n";
$fp[] = "foreach (" . $data['options'] . " as $option) {" . "\n";
$fp[] = "\$message .= \$db[\$option] .'</tr></td>';" . "\n";
}
}
The problem is with the line
PHP Code:
$fp[] = "foreach (" . $data['options'] . " as $option) {
When the written file is displayed, for that line it shows
PHP Code:
foreach (Array as $option) {
The rest of the code is converted correctly. If I remove the foreach loop, the created file can be ran and the output is created as expected, using the complete code, of course. Can anyone see a problem with how I am doing this?