| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- use Illuminate\Support\Carbon;
- use App\Services\ConfigService;
- if (!function_exists('ensureUrl')) {
- function ensureUrl($url)
- {
- if (!filter_var($url, FILTER_VALIDATE_URL)) {
- if (empty($url)) return $url;
- $newUrl = config('app.image_url1') . $url;
- return filter_var($newUrl, FILTER_VALIDATE_URL) ? $newUrl : $url;
- }
- return $url;
- }
- }
- if (!function_exists('replacePartInUrl')) {
- function replacePartInUrl($url)
- {
- if (filter_var($url, FILTER_VALIDATE_URL)) {
- $target = config('app.image_url1');
- return str_replace($target, '', $url);
- }
- return $url;
- }
- }
- if (!function_exists('format_date')) {
- function format_date($date, $format = 'Y-m-d')
- {
- if (!$date) return null;
- return Carbon::parse($date)->format($format);
- }
- }
- if (!function_exists('get_image_url')) {
- function get_image_url($path)
- {
- $baseUrl = config('app.image_url', null);
- if (!$baseUrl) {
- return null;
- }
- return rtrim($baseUrl, '/') . '/' . ltrim($path, '/');
- }
- }
- if (!function_exists('full_url')) {
- function full_url($filepath)
- {
- $baseUrl = config('app.url');
- $imageUrl = config('app.image_url');
- // 优先使用图片专用域名
- $domain = $imageUrl ? $imageUrl : $baseUrl;
- if ($domain) {
- // 去除域名末尾的斜杠,去除文件路径开头的斜杠,然后拼接
- return rtrim($domain, '/') . '/' . ltrim($filepath, '/');
- }
- return $filepath;
- }
- }
- // 多语言
- if (!function_exists('lang')) {
- function lang($key)
- {
- $msg = __('message.' . $key);
- if ($msg === "message.{$key}") return $key;
- return $msg;
- }
- }
- // 读取系统设置
- if (!function_exists('config_val')) {
- function config_val($field)
- {
- return ConfigService::model()::where('field', $field)->value('val') ?? '';
- }
- }
- // 小数随机
- if(!function_exists('random_float')){
- function random_float($min, $max, $precision = 2) {
- $multiplier = pow(10, $precision);
- $intMin = $min * $multiplier;
- $intMax = $max * $multiplier;
-
- return mt_rand($intMin, $intMax) / $multiplier;
- }
- }
- if (!function_exists('retain_number')) {
- /**
- * 保留数字指定的小数位数(直接截断,不四舍五入)
- *
- * @param float|int|string $number 要处理的数字
- * @param int $point 要保留的小数位数(默认2位)
- * @return float|string 返回处理后的数字(失败时返回原始输入)
- */
- function retain_number($number, $point = 2) {
- // 验证小数位数参数
- $point = (int)$point;
- if ($point < 0) {
- $point = 0;
- }
-
- // 非数字直接返回
- if (!is_numeric($number)) {
- return $number;
- }
-
- $floatValue = (float)$number;
-
- // 如果是整数或小数位数为0,直接返回整数
- if (is_int($number) || $point === 0) {
- return (float)floor($floatValue);
- }
-
- // 计算截断倍数(如 2位小数则乘以 100)
- $multiplier = pow(10, $point);
-
- // 直接截断小数部分
- $truncated = floor($floatValue * $multiplier) / $multiplier;
-
- return $truncated;
- }
- }
- // 字符串格式化版本(保证小数位数,如 5 → "5.00")
- if (!function_exists('retain_number_format')) {
- function retain_number_format($number, $point = 2) {
- // $result = retain_number($number, $point);
- if (!is_numeric($number)) {
- return $number;
- }
- return number_format($number, $point, '.', '');
- }
- }
|