keys( $prefix. '*'); $new=[]; foreach ($arr as $v) { $new[]= Str::replaceFirst( redis_prefix(),'',$v ); } $redis->del($new); } function sc($data){ echo "
";
    print_r($data);
    echo "
"; } /** * 获取微秒等级的时间戳 * * @return float */ function getMillisecond() { list($t1, $t2) = explode(' ', microtime()); return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000); } if (! function_exists('getIp')) { function getIp() { if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); elseif(getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); elseif(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); elseif(isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return ($ip); } } /** * @param $url * @param string $method * @param array $postData * @param int $timeOut * @param array $header * @return mixed|null|string */ function getHttpContent($url, $method = 'POST', $postData, $timeOut = 30, $header = []) { $data = ''; if (!empty($url)) { try { $ch = curl_init(); if (substr($url, 0, 5) == 'https') { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); } curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, $timeOut); //30秒超时 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); if ($header) { curl_setopt($ch, CURLOPT_HTTPHEADER, $header); } if (strtoupper($method) == 'POST') { $curlPost = is_array($postData) ? http_build_query($postData) : $postData; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); } elseif (strtoupper($method) == 'GET') { if (!empty($postData)) { $url = $url . (strpos($url, '?') ? '&' : '?') . http_build_query($postData); } } curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); } catch (Exception $e) { $data = null; } } return $data; } /** * POST请求到URL并接收应答数据。 */ function send_post($url, $post_data) { $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/json', 'content' => $post_data, 'timeout' => 60 // 超时时间(单位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; } //写日志 function write_log($filename,$data){ if(!is_string($data)){ $data = json_encode($data); } $data = '['.date("Y-m-d H:i:s",time()).'] : '. $data; file_put_contents($filename,$data.PHP_EOL, FILE_APPEND); } //生成签名 function makeSign($params,$appkey,$sign_type=1){ ksort($params); unset($params['sign']); $str = ''; foreach($params as $key=>$val){ if(is_array($val)){ continue; } if($sign_type == 1 || !$sign_type){ if(strlen($val) > 0){ $str.= trim($val); } }else{ if(strlen($val) > 0){ $str.= trim($key).'='.trim($val); } } } $hash_hmac = hash_hmac('sha256', $str, $appkey, true); return urlencode(base64_encode($hash_hmac)); } //生成订单号 function buildOrderId($bid) { list($t1, $t2) = explode(' ', microtime()); $orderId = sprintf('%.0f%03d', (floatval($t1) + floatval($t2)) * 1000, mt_rand(0, 999)); return $orderId.rand(10,99) . substr(sprintf("%04d", $bid), -4); } //生成12位订单号 function build12OrderId($bid) { return substr(time().rand(10,99).substr(sprintf("%04d", $bid), -3),-12); } //生成token function buildToken($bid){ $str = md5(uniqid(md5(microtime(true)),true)); $token = sha1($str.$bid); return $token; } //加密 function encryptToken($str){ $passwd = config('Pay')['encryptStr']; $result = openssl_encrypt($str, 'DES-ECB', $passwd, 0); return $result; } //解密 function decryptToken($str){ $passwd = config('Pay')['encryptStr']; $result = openssl_decrypt($str, 'DES-ECB', $passwd, 0); return $result; } function transPn($link,$pn){ $arr = explode('&',$link); if(!empty($arr)){ foreach($arr as $key=>$val){ if(preg_match("/^pn=*/",$val)){ $arr[$key] = 'pn='.$pn; } } $link = implode('&',$arr); } return $link; } function confusionPhone($phone){ $confusionStr = rand(10,99); $tmpStr = substr($phone,0,strlen($phone) - 2); $confusionPhone = $tmpStr.$confusionStr; return $confusionPhone; } function confusionEmail($email){ $arr1 = range( 'a', 'z' ); $arr2 = range(1,9); $arr = array_merge($arr1,$arr2); $str = $arr[rand(0,count($arr) - 1)].$arr[rand(0,count($arr) - 1)]; $tmpStr = substr($email,(strlen($email) - 2) * -1); $confusionEmail = $str.$tmpStr; return $confusionEmail; } function setOrderNo(){ $order_no = date('Ymd').time(); return $order_no; } //26位英文转换为10进制 function eWordChangeNum($value){ $letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 26个英文字母 // $value = "ABC"; // 要转换的英文进制值 $decimalValue = 0; $base = strlen($letters); // 进制的基数为26 // 从最高位开始逐个处理 for ($i = 0; $i < strlen($value); $i++) { $char = strtoupper($value[$i]); $position = strpos($letters, $char); // 获取字母在进制中的位置 $decimalValue = $decimalValue * $base + ($position + 1); // 转换为十进制 } return $decimalValue; }