common.php 5.2 KB
<?php

/**
 * 首字母排序A-Z(含汉字)
 */
if (!function_exists('getFirstChar')) {
    function getFirstChar($s)
    {
        $s0 = mb_substr($s, 0, 1); //获取名字的姓
        $s = iconv('UTF-8', 'gb2312', $s0); //将UTF-8转换成GB2312编码
//var_dump(ord($s0));
//     var_dump(ord($s));
        if (ord($s0) > 128) { //汉字开头,汉字没有以U、V开头的

            $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
            if ($asc >= -20319 and $asc <= -20284) return "A";
            if ($asc >= -20283 and $asc <= -19776) return "B";
            if ($asc >= -19775 and $asc <= -19219) return "C";
            if ($asc >= -19218 and $asc <= -18711) return "D";
            if ($asc >= -18710 and $asc <= -18527) return "E";
            if ($asc >= -18526 and $asc <= -18240) return "F";
            if ($asc >= -18239 and $asc <= -17760) return "G";
            if ($asc >= -17759 and $asc <= -17248) return "H";
            if ($asc >= -17247 and $asc <= -17418) return "I";
            if ($asc >= -17417 and $asc <= -16475) return "J";
            if ($asc >= -16474 and $asc <= -16213) return "K";
            if ($asc >= -16212 and $asc <= -15641) return "L";
            if ($asc >= -15640 and $asc <= -15166) return "M";
            if ($asc >= -15165 and $asc <= -14923) return "N";
            if ($asc >= -14922 and $asc <= -14915) return "O";
            if ($asc >= -14914 and $asc <= -14631) return "P";
            if ($asc >= -14630 and $asc <= -14150) return "Q";
            if ($asc >= -14149 and $asc <= -14091) return "R";
            if ($asc >= -14090 and $asc <= -13319) return "S";
            if ($asc >= -13318 and $asc <= -12839) return "T";
            if ($asc >= -12838 and $asc <= -12557) return "W";
            if ($asc >= -12556 and $asc <= -11848) return "X";
            if ($asc >= -11847 and $asc <= -11056) return "Y";
            if ($asc >= -11055 and $asc <= -10247) return "Z";
        } else if (ord($s) >= 48 && ord($s) <= 57) {//数字开头
            $aa = @iconv_substr($s, 0, 1, 'utf-8');
            switch ($aa) {
                case 1:
                    return "Y";
                case 2:
                    return "E";
                case 3:
                    return "S";
                case 4:
                    return "S";
                case 5:
                    return "W";
                case 6:
                    return "L";
                case 7:
                    return "Q";
                case 8:
                    return "B";
                case 9:
                    return "J";
                case 0:
                    return "L";
            }
        } else if (ord($s) >= 65 && ord($s) <= 90) { //大写英文开头
            return substr($s, 0, 1);
        } else if (ord($s) >= 97 && ord($s) <= 122) { //小写英文开头
            return strtoupper(substr($s, 0, 1));
        } else {
            return iconv_substr($s0, 0, 1, 'utf-8');
//中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可
        }
    }
}
if (!function_exists('http_request')) {
// curl请求
    function http_request($url, $timeout = 30, $header = array())
    {
        if (!function_exists('curl_init')) {
            throw new Exception('server not install curl');
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        if (!empty($header)) {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        }
        $data = curl_exec($ch);
        list($header, $data) = explode("\r\n\r\n", $data);
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if ($http_code == 301 || $http_code == 302) {
            $matches = array();
            preg_match('/Location:(.*?)\n/', $header, $matches);
            $url = trim(array_pop($matches));
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);
            $data = curl_exec($ch);
        }

        if ($data == false) {
            curl_close($ch);
        }
        @curl_close($ch);

        return $data;
    }
}

if (!function_exists('insert_openid_info')) {
    /**
     * 将授权用户信息保存起来
     */
    function insert_openid_info($data)
    {
        $data['upt_time'] = time();
        $res = \think\Db::name("openid_info")->where("openid", $data['openid'])->find();
//        file_put_contents("ccc.txt", date("Y-m-d H:i:s") . json_encode($data) . PHP_EOL, FILE_APPEND);
        if (!empty($res)) {
            \think\Db::name("openid_info")->where("openid", $data['openid'])->update($data);
        } else {
            \think\Db::name("openid_info")->insertGetId($data);
        }
        return true;
    }
}
/**
 * 生成订单号
 * 重复就重新生成
 */
if (!function_exists('getOrderSn')) {
    function getOrderSn()
    {
        $orderid = date("YmdHis") . mt_rand(1000, 999999);
        $odcks = \think\Db::name('order')
            ->where(['order_no' => $orderid])
            ->find();
        while (!empty($odcks)) {
            $orderid = date("YmdHis") . mt_rand(1000, 999999);
        }
        return $orderid;
    }
}