static function toHtmlTable($obj, $htmlEncode = false) { $retval = array(); if (is_object($obj)) { $retval[] = '<table>'; $retval[] = '<tr><th>' . get_class($obj) . '</th><th> </th></tr>'; $retval[] = '<tr><th>Field</th><th>Value</th></tr>'; foreach (get_object_vars($obj) as $key => $value) { if ($value === false) { $value = '<em>false</em>'; } if ($value === null) { $value = '<em>null</em>'; } if (is_array($value) or is_object($value)) { $value = FX::toHtmlTable($value, $htmlEncode); } else { if ($htmlEncode) { $value = FX::html_encode($value); } } $retval[] = '<tr><td valign="top">' . $key . '</td><td valign="top">' . $value . '</td></tr>'; } $retval[] = '</table>'; } else { if (is_array($obj)) { if (count($obj) == 0) { $retval[] = '<em>(empty array)</em>'; } else { $retval[] = '<table>'; $retval[] = '<tr><th>Key</th><th>Value</th></tr>'; foreach ($obj as $key => $value) { if ($value === false) { $value = '<em>false</em>'; } if ($value === null) { $value = '<em>null</em>'; } if (is_array($value) or is_object($value)) { $value = FX::toHtmlTable($value, $htmlEncode); } else { if ($htmlEncode) { $value = FX::html_encode($value); } } $retval[] = '<tr><td valign="top">' . $key . '</td><td valign="top">' . $value . '</td></tr>'; } $retval[] = '</table>'; } } else { if ($htmlEncode) { $obj = FX::html_encode($obj); } $retval[] = $obj; } } return implode("\n", $retval); }