/**
* 生成默认商品编号/货号
*/
function WSTGoodsNo($pref = ''){
return $pref.(round(microtime(true),4)*10000).mt_rand(0,9);
}
/**
* 获取订单统一流水号
*/
function WSTOrderQnique(){
return (round(microtime(true),4)*10000).mt_rand(1000,9999);
}
/**
* 高精度数字相加
* @param $num
* @param number $i 保留小数位
*/
function WSTBCMoney($num1,$num2,$i=2){
$num = bcadd($num1, $num2, $i);
return (float)$num;
}
/**
* 提供原生分页处理
*/
function WSTPager($total,$rs,$page,$size = 0){
$pageSize = ($size>0)?$size:config('paginate.list_rows');
$totalPage = ($total%$pageSize==0)?($total/$pageSize):(intval($total/$pageSize)+1);
return ['total'=>$total,'per_page'=>$pageSize,'current_page'=>$page,'last_page'=>$totalPage,'data'=>$rs];
}
/**
* 将传过来的字符串格式化为数值字符串
* @param string $split 要格式的字符串
* @param string $str 字符串中的分隔符号
* @param boolean $isJoin 是否连成字符串返回
*/
function WSTFormatIn($split,$str,$isJoin = true){
if($str=='')return $isJoin?'':[];
$strdatas = explode($split,$str);
$data = array();
for($i=0;$i<count($strdatas);$i++){
$data[] = (int)$strdatas[$i];
}
$data = array_unique($data);
if($isJoin)return implode($split,$data);
return $data;
}
/**
* 生成随机字符串
* @param integer $len 要生成的字符串长度
*/
function WSTRandStr($len = 6){
$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$tmp = '';
for($i=0;$i<$len;$i++){
$tmp.=$str[rand(0,35)];
}
return $tmp;
}
/**
* 获取星期几
*/
function WSTgetWeek($date){
//强制转换日期格式
$date_str=date('Y-m-d',strtotime($date));
$number_wk=date("w",strtotime($date));
$weekArr=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
return $weekArr[$number_wk];
}
/**
* URL 64位加密处理
* @param string $data 字符串内容
* @param boolean $isEncode true:编码 false:解码
*/
function WSTBase64url($data,$isEncode = true) {
return ($isEncode)?rtrim(strtr(base64_encode($data), '+/', '-_'), '='):base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
/**
* URL 64位加密处理[编码]
* @param string $data 字符串内容
*/
function WSTBase64urlEncode($data){
$secretKey = WSTConf('CONF.urlSecretKey');
$base64 = new \org\Base64();
$key = WSTBase64url($base64->encrypt($data, $secretKey),true);
return $key;
}
/**
* URL 64位加密处理[解码]
* @param string $data 字符串内容
*/
function WSTBase64urlDecode($data){
$secretKey = WSTConf('CONF.urlSecretKey');
$key = WSTBase64url($data,false);
$base64 = new \org\Base64();
$key = $base64->decrypt($key,$secretKey);
return $key;
}
/**
* 判断访问端来源
*/
function WSTVisitModule(){
$request = request();
if($request->isMobile()){
return (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false)?'wechat':'mobile';
}
return 'home';
}
/**
* 计算剩余时间
*/
function WSTTimeToStr($second){
$day = floor($second/(3600*24));
$second = $second%(3600*24);//除去整天之后剩余的时间
$hour = floor($second/3600);
$second = $second%3600;//除去整小时之后剩余的时间
$minute = floor($second/60);
$second = $second%60;//除去整分钟之后剩余的时间
//返回字符串
return (($day>0)?($day.'天'):"").($hour<10?"0".$hour:$hour).':'.($minute<10?"0".$minute:$minute).':'.($second<10?"0".$second:$second);
}
/**
* 分词
*/
function WSTAnalysis($str){
$str = trim($str);
$do_fork = true;
$do_unit = true;//新词识别
$do_multi = true;//多元切分
$do_prop = false;//词性标注
$pri_dict = false;//是否预载全部词条
$pa = new \phpanalysis\phpanalysis('utf-8', 'utf-8', $pri_dict);
//载入词典
$pa->LoadDict();
//执行分词
$pa->SetSource($str);
$pa->differMax = $do_multi;
$pa->unitWord = $do_unit;
$pa->StartAnalysis( $do_fork );
$str = $pa->GetFinallyResult(' ', $do_prop);
$str = explode(' ',$str);
$rs = array();
foreach ($str as $key =>$v){
if(trim($v)=='' || trim($v)==')' || trim($v)=='(')continue;
$rs[] = $v;
}
return $rs;
}