. */ class Helpers { /** * Removes whitespace and special characters from a string * and sets all characters to lower case. */ public static function sanitizeInputForHashing($value) { $value = preg_replace('/[^A-Za-z0-9]/', '', $value); return strtolower($value); } public static function template($template) { echo file_get_contents('templates/' . $template); } public static function angular($expression) { return '{{' . $expression . '}}'; } public static function formatBytes($bytes, $precision = 2) { if ($bytes == 0) { return '0 MB'; } $units = ['B', 'KB', 'MB', 'GB', 'TB']; $bytes = max($bytes, 0); $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); $pow = min($pow, count($units) - 1); $bytes /= pow(1024, $pow); return round($bytes, $precision) . ' ' . $units[$pow]; } /** * timeago-style timestamp generator macro. * * @param string $timestamp A timestamp in SQL DATETIME syntax * @return string */ public static function timestamp($timestamp) { if (gettype($timestamp) !== 'string' && get_class($timestamp) === 'DateTime') { $timestamp = $timestamp->format('c'); } $title = date('c', strtotime($timestamp)); $content = date('F j, Y \@ g:i:s a', strtotime($timestamp)); return '' . $content . ''; } /** * Converts an RGB array to a hex string * * @param array[int] $rgb RGB values in an array * @return string */ public static function rgb2hex($rgb) { $hex = "#"; $hex .= str_pad(dechex($rgb[0]), 2, "0", STR_PAD_LEFT); $hex .= str_pad(dechex($rgb[1]), 2, "0", STR_PAD_LEFT); $hex .= str_pad(dechex($rgb[2]), 2, "0", STR_PAD_LEFT); return $hex; } }