You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
think-library/src/common.php

109 lines
3.3 KiB

2 years ago
<?php
// +----------------------------------------------------------------------
// | ThinkLibrary 6.0 for ThinkPhP 6.0
// +----------------------------------------------------------------------
// | 版权所有 2017~2020 [ https://www.dtapp.net ]
// +----------------------------------------------------------------------
// | 官方网站: https://gitee.com/liguangchun/ThinkLibrary
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
// | gitee 仓库地址 https://gitee.com/liguangchun/ThinkLibrary
// | github 仓库地址 https://github.com/GC0202/ThinkLibrary
// | Packagist 地址 https://packagist.org/packages/liguangchun/think-library
// +----------------------------------------------------------------------
use DtApp\ThinkLibrary\cache\Mysql;
use DtApp\ThinkLibrary\exception\DtaException;
use DtApp\ThinkLibrary\service\QqWryService;
use DtApp\ThinkLibrary\service\SystemService;
if (!function_exists('get_ip_info')) {
/**
* 获取请求IP信息
* @param string $ip
* @return mixed|null
* @throws DtaException
*/
function get_ip_info($ip = '')
{
if (empty($ip)) {
if (!isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
//为了兼容百度的CDN所以转成数组
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = $arr[0];
}
}
return QqWryService::instance()->getLocation($ip);
}
}
if (!function_exists('get_ip')) {
/**
* 获取请求IP
* @return string
*/
function get_ip()
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
//为了兼容百度的CDN所以转成数组
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
return $arr[0];
}
return $_SERVER['REMOTE_ADDR'];
}
}
if (!function_exists('uri')) {
/**
* 生成最短 URL 地址
* @param string $url 路由地址
* @param array $vars PATH 变量
* @param boolean|string $suffix 后缀
* @param boolean|string $domain 域名
* @param boolean|string $fillSuffix 补上后缀
* @return string
*/
function uri($url = '', array $vars = [], $suffix = true, $domain = false, $fillSuffix = false)
{
return SystemService::instance()->uri($url, $vars, $suffix, $domain, $fillSuffix);
}
}
if (!function_exists('dtacache')) {
/**
* 缓存
* @param string $name
* @param array $value
* @param int $expire
* @return bool|int|string
* @throws DtaException
* @throws \think\db\exception\DbException
*/
function dtacache($name = '', $value = [], $expire = 6000)
{
$myc = new Mysql();
if (empty($value)) {
return $myc->name($name)
->get();
}
$judge = $myc->name($name)
->get();
if (empty($judge)) {
$myc->name($name)
->expire($expire)
->set($value);
} else {
$myc->name($name)
->expire($expire)
->update($value);
}
return $myc->name($name)
->get();
}
}