mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-04-06 03:58:04 +08:00
173 lines
4.8 KiB
PHP
173 lines
4.8 KiB
PHP
<?php
|
||
|
||
// +----------------------------------------------------------------------
|
||
// | ThinkAdmin
|
||
// +----------------------------------------------------------------------
|
||
// | 版权所有 2014~2017 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
|
||
// +----------------------------------------------------------------------
|
||
// | 官方网站: http://think.ctolog.com
|
||
// +----------------------------------------------------------------------
|
||
// | 开源协议 ( https://mit-license.org )
|
||
// +----------------------------------------------------------------------
|
||
// | github开源项目:https://github.com/zoujingli/ThinkAdmin
|
||
// +----------------------------------------------------------------------
|
||
|
||
|
||
use service\DataService;
|
||
use service\FileService;
|
||
use service\NodeService;
|
||
use service\SoapService;
|
||
use think\Db;
|
||
use Wechat\Loader;
|
||
|
||
/**
|
||
* 打印输出数据到文件
|
||
* @param mixed $data
|
||
* @param bool $replace
|
||
* @param string|null $pathname
|
||
*/
|
||
function p($data, $replace = false, $pathname = null)
|
||
{
|
||
is_null($pathname) && $pathname = RUNTIME_PATH . date('Ymd') . '.txt';
|
||
$str = (is_string($data) ? $data : ((is_array($data) || is_object($data)) ? print_r($data, true) : var_export($data, true))) . "\n";
|
||
$replace ? file_put_contents($pathname, $str) : file_put_contents($pathname, $str, FILE_APPEND);
|
||
}
|
||
|
||
/**
|
||
* 获取mongoDB连接
|
||
* @param string $col 数据库集合
|
||
* @param bool $force 是否强制连接
|
||
* @return \think\db\Query|\think\mongo\Query
|
||
*/
|
||
function mongo($col, $force = false)
|
||
{
|
||
return Db::connect(config('mongo'), $force)->name($col);
|
||
}
|
||
|
||
/**
|
||
* 获取微信操作对象
|
||
* @param string $type
|
||
* @return \Wechat\WechatMedia|\Wechat\WechatMenu|\Wechat\WechatOauth|\Wechat\WechatPay|\Wechat\WechatReceive|\Wechat\WechatScript|\Wechat\WechatUser|\Wechat\WechatExtends|\Wechat\WechatMessage
|
||
* @throws Exception
|
||
*/
|
||
function & load_wechat($type = '')
|
||
{
|
||
static $wechat = [];
|
||
$index = md5(strtolower($type));
|
||
if (!isset($wechat[$index])) {
|
||
$config = [
|
||
'token' => sysconf('wechat_token'),
|
||
'appid' => sysconf('wechat_appid'),
|
||
'appsecret' => sysconf('wechat_appsecret'),
|
||
'encodingaeskey' => sysconf('wechat_encodingaeskey'),
|
||
'mch_id' => sysconf('wechat_mch_id'),
|
||
'partnerkey' => sysconf('wechat_partnerkey'),
|
||
'ssl_cer' => sysconf('wechat_cert_cert'),
|
||
'ssl_key' => sysconf('wechat_cert_key'),
|
||
'cachepath' => CACHE_PATH . 'wxpay' . DS,
|
||
];
|
||
$wechat[$index] = Loader::get($type, $config);
|
||
}
|
||
return $wechat[$index];
|
||
}
|
||
|
||
/**
|
||
* UTF8字符串加密
|
||
* @param string $string
|
||
* @return string
|
||
*/
|
||
function encode($string)
|
||
{
|
||
list($chars, $length) = ['', strlen($string = iconv('utf-8', 'gbk', $string))];
|
||
for ($i = 0; $i < $length; $i++) {
|
||
$chars .= str_pad(base_convert(ord($string[$i]), 10, 36), 2, 0, 0);
|
||
}
|
||
return $chars;
|
||
}
|
||
|
||
/**
|
||
* UTF8字符串解密
|
||
* @param string $string
|
||
* @return string
|
||
*/
|
||
function decode($string)
|
||
{
|
||
$chars = '';
|
||
foreach (str_split($string, 2) as $char) {
|
||
$chars .= chr(intval(base_convert($char, 36, 10)));
|
||
}
|
||
return iconv('gbk', 'utf-8', $chars);
|
||
}
|
||
|
||
/**
|
||
* 网络图片本地化
|
||
* @param string $url
|
||
* @return string
|
||
*/
|
||
function local_image($url)
|
||
{
|
||
if (is_array(($result = FileService::download($url)))) {
|
||
return $result['url'];
|
||
}
|
||
return $url;
|
||
}
|
||
|
||
/**
|
||
* 日期格式化
|
||
* @param string $date 标准日期格式
|
||
* @param string $format 输出格式化date
|
||
* @return false|string
|
||
*/
|
||
function format_datetime($date, $format = 'Y年m月d日 H:i:s')
|
||
{
|
||
return empty($date) ? '' : date($format, strtotime($date));
|
||
}
|
||
|
||
/**
|
||
* 设备或配置系统参数
|
||
* @param string $name 参数名称
|
||
* @param bool $value 默认是null为获取值,否则为更新
|
||
* @return string|bool
|
||
*/
|
||
function sysconf($name, $value = null)
|
||
{
|
||
static $config = [];
|
||
if ($value !== null) {
|
||
list($config, $data) = [[], ['name' => $name, 'value' => $value]];
|
||
return DataService::save('SystemConfig', $data, 'name');
|
||
}
|
||
if (empty($config)) {
|
||
$config = Db::name('SystemConfig')->column('name,value');
|
||
}
|
||
return isset($config[$name]) ? $config[$name] : '';
|
||
}
|
||
|
||
/**
|
||
* RBAC节点权限验证
|
||
* @param string $node
|
||
* @return bool
|
||
*/
|
||
function auth($node)
|
||
{
|
||
return NodeService::checkAuthNode($node);
|
||
}
|
||
|
||
/**
|
||
* array_column 函数兼容
|
||
*/
|
||
if (!function_exists("array_column")) {
|
||
|
||
function array_column(array &$rows, $column_key, $index_key = null)
|
||
{
|
||
$data = [];
|
||
foreach ($rows as $row) {
|
||
if (empty($index_key)) {
|
||
$data[] = $row[$column_key];
|
||
} else {
|
||
$data[$row[$index_key]] = $row[$column_key];
|
||
}
|
||
}
|
||
return $data;
|
||
}
|
||
|
||
} |