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);
}