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