4 && ($number % 100) < 20) ? 2 : $cases[min($number % 10, 5)]]; } public static function time(int $time, bool $ago = true) { if ($ago) { $timeDiff = time() - $time; } else { $timeDiff = $time - time(); } if ($timeDiff < 1) { return _('now'); } $a = [365 * 24 * 60 * 60 => [_('year'), _('years'), _('years')], 30 * 24 * 60 * 60 => [_('month'), _('months'), _('months')], 24 * 60 * 60 => [_('day'), _('days'), _('days')], 60 * 60 => [_('hour'), _('hours'), _('hours')], 60 => [_('minute'), _('minutes'), _('minutes')], 1 => [_('second'), _('seconds'), _('seconds')]]; foreach ($a as $secs => $v) { $d = $timeDiff / $secs; if ($d >= 1) { $r = round($d); if ($ago) { return sprintf(_('%s %s ago'), $r, self::plural($r, $v)); } else { return sprintf(_('%s %s later'), $r, self::plural($r, $v)); } } } } public static function post(string $string) { $string = html_entity_decode($string, ENT_QUOTES, 'UTF-8'); $string = htmlentities($string, ENT_QUOTES, 'UTF-8'); $string = preg_replace("|([\s])\*([\S]+)\*([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\~([\S]+)\~([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\_([\S]+)\_([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\-([\S]+)\-([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\`([\S]+)\`([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|@([a-zA-Z0-9_]+)|i", "@$1", $string); $string = preg_replace("|((https?://)+([\d\w\.-]+\.[\w\.]{2,6})[^\s\]\[\<\>]*/?)|i", "$3", $string); $string = nl2br($string); return $string; } // @TODO REPLACE public static function text(string $string) { $string = html_entity_decode($string, ENT_QUOTES, 'UTF-8'); $string = htmlentities($string, ENT_QUOTES, 'UTF-8'); $string = preg_replace("|([\s])\*([\S]+)\*([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\~([\S]+)\~([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\_([\S]+)\_([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\-([\S]+)\-([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|([\s])\`([\S]+)\`([\s]?)|i", "$1$2$3", $string); $string = preg_replace("|@([a-zA-Z0-9_]+)|i", "@$1", $string); $string = preg_replace("|((https?://)+([\d\w\.-]+\.[\w\.]{2,6})[^\s\]\[\<\>]*/?)|i", "$3", $string); $string = nl2br($string); return $string; } }