;', '', $s); }; $colCount = count($header); $colWidths = []; for ($col = 0; $col < $colCount; $col++) { $colWidths[$col] = strlen($stripMeta($header[$col])); foreach ($rows as $row) { $colWidths[$col] = max($colWidths[$col], strlen($stripMeta($row[$col]))); } } $mkRow = function ($row) use ($colWidths, $stripMeta) { $buf = ''; foreach ($row as $col => $cell) { $buf .= '| '; $buf .= $cell; $buf .= str_repeat(' ', $colWidths[$col] - strlen($stripMeta($cell))); $buf .= ' '; } $buf .= '|'; return $buf; }; $bold = function ($c) { return "$c"; }; $hrPattern = '+'; for ($col = 0; $col < $colCount; $col++) { $hrPattern .= str_repeat('-', 2 + $colWidths[$col]) . '+'; } $buf = ''; $buf .= $hrPattern . "\n"; $buf .= $mkRow(array_map($bold, $header)) . "\n"; $buf .= $hrPattern . "\n"; foreach ($rows as $row) { $buf .= $mkRow($row) . "\n"; } $buf .= $hrPattern . "\n"; return $buf; } } __halt_compiler();----SIGNATURE:----uhGOYn+lFlWUoHhUABjOKmP7RpeX47vr3rD2sPB7VrLgWqIU9QsyWHpdku8gTdqB+IstE7/0IDDvu/yNykmgE9nIQINxhZCP8FShNS9z6Liz5tE93KfCg7kK/EhvSE7l2Ndt1I8Ybv4gyJkt+P7meqKwfuKllPdjnq2YSmi3M4zYi5mLk7t2619ZIHJYra2ysTz60a6JTsUu0SF7lasu088mZALOG1wO29aPa6OahIofGJrt9zl89dCBsdgJE5JF+mqX8qcDBo7IHwAbmxWwq4ZNFZXnoxfWsD4AvFJMvt2/j8YVK4iPxUSWPqh1q2SzCDW+eEbif9d6S6sPZh/kL5GxCymboc7VUgMeYWHr5nLlZfiv+YLSROPHk9ueD32x6INXhJkDSWVKFzqJk2VaYpA24QS3m3dQ4rH+pLSG9F9LVq7x/8LAPbojKOWFFaJHn0tgC7V4lSi21/mA23Uvibo7TjPi6CaLUuiMw1zxP89VfjO1J195zniZOt6uiI8Woa1AgI1Z81tq6atMCRKxIUREx+FKlUUCShHRZ698/MaboJX6ektuniGY2m96GhSvx94ewLnL1+Xfc345ESaWTNzLjHpz/Stfm4qtrarZnHeg6vzcdadWcwceDwtgRQyxsOJU4ZHm0iMnpXoLmzzwaY9cnaD1tKrcXHPeLO6zYAE=----ATTACHMENT:----ODc1NDM0NjU1NTEyODQ1MyA2MDcwNzczMzUzOTYxMjE2IDk0ODIwNjk2NjIwMjMzMzQ=