123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- // +----------------------------------------------------------------------
- // | Think.Admin
- // +----------------------------------------------------------------------
- // | 版权所有 2014~2017 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
- // +----------------------------------------------------------------------
- // | 官方网站: http://think.ctolog.com
- // +----------------------------------------------------------------------
- // | 开源协议 ( https://mit-license.org )
- // +----------------------------------------------------------------------
- // | github开源项目:https://github.com/zoujingli/Think.Admin
- // +----------------------------------------------------------------------
- use service\DataService;
- use service\FileService;
- use service\NodeService;
- use Wechat\Loader;
- use think\Db;
- /**
- * 打印输出数据到文件
- * @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);
- }
- /**
- * 获取微信操作对象
- * @param string $type
- * @return \Wechat\WechatReceive|\Wechat\WechatUser|\Wechat\WechatPay|\Wechat\WechatScript|\Wechat\WechatOauth|\Wechat\WechatMenu|\Wechat\WechatMedia
- */
- 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 $name 参数名称
- * @param bool $value 默认是false为获取值,否则为更新
- * @return string|bool
- */
- function sysconf($name, $value = false)
- {
- static $config = [];
- if ($value !== false) {
- 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;
- }
- }
|