'; if (!empty($title)) { echo '
'; print_r($object); echo ''; } public static function table($tableName) { return TABLENAME_PREFIX . $tableName; } public static function markdown($md, $clear=false, $line=true) { $parseDown = new \Parsedown(); $parseDown ->setMarkupEscaped(true) ->setBreaksEnabled(true) ->setUrlsLinked(false); if ($line) { $html = $parseDown->line($md); } else { $md = preg_replace_callback( '#( ){2,}#', function ($m) { return str_repeat(' ', strlen($m[0])); }, $md ); $html = $parseDown->text($md); } $text = strip_tags($html); return $clear ? $text : $html; } public static function htmlEscape($html) { return htmlentities($html, ENT_HTML5 | ENT_QUOTES); } public static function htmlMailEscape($html) { return htmlspecialchars($html, ENT_HTML5 | ENT_QUOTES); } public static function csvEscape($text) { $escaped = str_replace('"', '""', $text); $escaped = str_replace("\r\n", '', $escaped); $escaped = str_replace("\n", '', $escaped); return '"' . $escaped . '"'; } public static function cleanFilename($title) { $cleaned = preg_replace('[^a-zA-Z0-9._-]', '_', $title); $cleaned = preg_replace(' {2,}', ' ', $cleaned); return $cleaned; } public static function fromPostOrDefault($postKey, $default = '') { return !empty($_POST[$postKey]) ? Utils::htmlEscape($_POST[$postKey]) : $default; } public static function base64url_encode($input) { return rtrim(strtr(base64_encode($input), '+/', '-_'), '='); } public static function base64url_decode($input) { return base64_decode(str_pad(strtr($input, '-_', '+/'), strlen($input) % 4, '=', STR_PAD_RIGHT)); } }