86400, trans('validation.attributes.hour') => 3600, trans('validation.attributes.minute') => 60, trans('validation.attributes.second') => 1, ]; foreach ($units as $unit => $value) { if ($seconds >= $value) { $count = floor($seconds / $value); $output .= $count.$unit; $seconds %= $value; } } return $output; } } // 获取系统设置 if (! function_exists('sysConfig')) { function sysConfig(string $key = '', string $default = ''): array|string { return $key ? config("settings.$key", $default) : config('settings'); } } // Array values and indexes clean if (! function_exists('array_clean')) { function array_clean(array &$array): array { foreach ($array as $key => &$value) { if (is_array($value)) { $value = array_clean($value); } if (empty($value)) { unset($array[$key]); } } return $array; } } // string url safe sanitize if (! function_exists('string_urlsafe')) { function string_urlsafe($string, $force_lowercase = true, $anal = false): string { $strip = [ '~', '`', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '=', '+', '[', '{', ']', '}', '\\', '|', ';', ':', '"', "'", '‘', '’', '“', '”', '–', '—', '—', '–', ',', '<', '.', '>', '/', '?', ]; $clean = trim(str_replace($strip, '_', strip_tags($string))); $clean = preg_replace('/\s+/', '-', $clean); $clean = ($anal) ? preg_replace('/[^a-zA-Z0-9]/', '', $clean) : $clean; if ($force_lowercase) { if (function_exists('mb_strtolower')) { $clean = mb_strtolower($clean, 'UTF-8'); } else { $clean = strtolower($clean); } } return $clean; } }