btreeSearch($ip); list($country, $area, $province, $city, $isp) = explode('|', $ip2region['region']); $result = compact('country', 'area', 'province', 'city', 'isp'); return kg_array_object($result); } /** * 获取站点基准URL * * @return string */ function kg_site_base_url() { $scheme = filter_input(INPUT_SERVER, 'REQUEST_SCHEME'); $host = filter_input(INPUT_SERVER, 'HTTP_HOST'); $path = filter_input(INPUT_SERVER, 'SCRIPT_NAME'); return "{$scheme}://{$host}" . rtrim(dirname($path), '/'); } /** * 获取默认头像路径 * * @return string */ function kg_default_avatar_path() { return '/img/avatar/default.png'; } /** * 获取默认封面路径 * * @return string */ function kg_default_cover_path() { return '/img/cover/default.png'; } /** * 获取数据万象基准URL * * @return string */ function kg_ci_base_url() { $storage = new StorageService(); return $storage->getCiBaseUrl(); } /** * 获取数据万象URL * * @param string $path * @return string */ function kg_ci_img_url($path) { if (!$path) return ''; if (Text::startsWith($path, 'http')) { return $path; } $storage = new StorageService(); return $storage->getCiImageUrl($path); } /** * 获取头像数据万象URL * * @param string $path * @return string */ function kg_ci_avatar_img_url($path) { $path = $path ?: kg_default_avatar_path(); return kg_ci_img_url($path); } /** * 获取封面数据万象URL * * @param string $path * @return string */ function kg_ci_cover_img_url($path) { $path = $path ?: kg_default_cover_path(); return kg_ci_img_url($path); } /** * 格式化数字 * * @param int $number * @return string */ function kg_human_number($number) { if ($number > 100000000) { $result = round($number / 100000000, 1) . '亿'; } elseif ($number > 10000) { $result = round($number / 10000, 1) . '万'; } elseif ($number > 1000) { $result = number_format($number); } else { $result = $number; } return $result; } /** * 格式化之前时间 * * @param int $time * @return string */ function kg_time_ago($time) { $diff = time() - $time; if ($diff > 7 * 86400) { return date('Y-m-d', $time); } elseif ($diff > 86400) { return floor($diff / 86400) . '天前'; } elseif ($diff > 3600) { return floor($diff / 3600) . '小时前'; } elseif ($diff > 60) { return floor($diff / 60) . '分钟前'; } else { return $diff . '秒前'; } } /** * 播放时长 * * @param int $time * @return string */ function kg_play_duration($time) { $result = '00:00'; if ($time > 0) { $hours = floor($time / 3600); $minutes = floor(($time - $hours * 3600) / 60); $seconds = $time % 60; $format = []; if ($hours > 0) { $format[] = sprintf('%02d', $hours); } if ($minutes >= 0) { $format[] = sprintf('%02d', $minutes); } if ($seconds >= 0) { $format[] = sprintf('%02d', $seconds); } $result = implode(':', $format); } return $result; } /** * 总时长 * * @param int $time * @return string */ function kg_total_duration($time) { $result = '00分钟'; if ($time > 0) { $hours = floor($time / 3600); $minutes = floor(($time - $hours * 3600) / 60); $seconds = $time % 60; $format = []; if ($hours > 0) { $format[] = sprintf('%02d小时', $hours); } if ($minutes > 0) { $format[] = sprintf('%02d分钟', $minutes); } if ($seconds > 0) { $format[] = sprintf('%02d秒', $seconds); } $result = implode('', $format); } return $result; } /** * 判断是否有路由权限 * * @param string $route * @return bool */ function kg_can($route = null) { return true; } /** * 构造icon路径 * * @param string $path * @param bool $local * @param string $version * @return string */ function kg_icon_link($path, $local = true, $version = null) { $href = kg_static_url($path, $local, $version); return '' . PHP_EOL; } /** * 构造css路径 * * @param string $path * @param bool $local * @param string $version * @return string */ function kg_css_link($path, $local = true, $version = null) { $href = kg_static_url($path, $local, $version); return '' . PHP_EOL; } /** * 构造js引入 * * @param string $path * @param bool $local * @param string $version * @return string */ function kg_js_include($path, $local = true, $version = null) { $src = kg_static_url($path, $local, $version); return '' . PHP_EOL; } /** * 构造静态url * * @param string $path * @param bool $local * @param string $version * @return string */ function kg_static_url($path, $local = true, $version = null) { $config = Di::getDefault()->getShared('config'); $baseUri = rtrim($config->static_base_uri, '/'); $path = ltrim($path, '/'); $url = $local ? $baseUri . '/' . $path : $path; $version = $version ? $version : $config->static_version; if ($version) { $url .= '?v=' . $version; } return $url; } /** * 构造全路径url * * @param mixed $uri * @param mixed $args * @return string */ function kg_full_url($uri, $args = null) { /** * @var $url Phalcon\Mvc\Url */ $url = Di::getDefault()->getShared('url'); $baseUrl = kg_site_base_url(); return $baseUrl . $url->get($uri, $args); }