Hi guys,
I have a problem with eval()
It returns "parse error, unexpected T_STRING in...) : eval()'d code"
Any idea about what's wrong?
Thanks!
Code:
function hd_string_table_to_text($arg_imp) {
$arg["labels"]["data"] = array();
$arg["labels"]["align"] = "BOTH"; // LEFT / RIGHT / BOTH
$arg["cells"]["data"] = array();
$arg["cells"]["align"] = "LEFT"; // LEFT / RIGHT / BOTH
$arg["col"]["char"] = "|";
$arg["col"]["padding"] = 0;
$arg["row"]["char"] = "-";
$arg["row"]["padding"] = 0;
$arg = array_merge($arg, $arg_imp);
// - ! - get max length
foreach ($arg["labels"]["data"] as $label) {
$strlen_array[] = strlen($label);
}
foreach ($arg["cells"]["data"] as $cell) {
$strlen_array[] = strlen($cell);
}
rsort($strlen_array);
$max_length = $strlen_array[0];
$max_length += $arg["col"]["padding"];
$header = $arg["col"]["char"];
// - ! - build header
foreach ($arg["labels"]["data"] as $label) {
$str_pad = "str_pad(" . $label . ", " . $max_length . ", ' ', STR_PAD_" . $arg["labels"]["align"] . ");"; [b]// PROBLEM HERE!
[/b]
$header .= eval($str_pad);
$header .= $arg["col"]["char"];
$label_tot++;
}
// - ! - build horizontal line
$line = $arg["col"]["char"] . str_repeat($arg["row"]["char"], (strlen($header) - 2)) . $arg["col"]["char"];
// - ! - build table
$i = 1;
$table .= $line . "\n";
$table .= $header . "\n";
$table .= $line . "\n";
$table .= $arg["col"]["char"];
foreach ($arg["cells"]["data"] as $cell) {
$table .= str_pad($cell, $max_length, " ", STR_PAD_BOTH) . $arg["col"]["char"];
if ($i == $label_tot) {
$i = 0;
$table .= "\n";
$table .= $line . "\n";
$table .= $arg["col"]["char"];
}
$i++;
}
return $table;
}