if (!function_exists('number_random')) {
/**
* 生成随机数字串
*
* @param int $length
* @return string
*/
function number_random($length = 6) {
$result = '';
for ($i = 0; $i
$result .= mt_rand(0, 9);
}
return $result;
}
}
if (!function_exists('string_random')) {
/**
* 生成随机字符串
*
* @param int $length
* @return string
*/
function string_random($length = 6) {
$result = '';
for ($i = 0; $i
$rand = mt_rand(1, 3);
switch ($rand) {
case 1:
$result .= mt_rand(0, 9);
break;
case 2:
$result .= chr(mt_rand(65, 90));
break;
default:
$result .= chr(mt_rand(97, 122));
break;
}
}
return $result;
}
}
if (!function_exists('get_order_number')) {
/**
* 生成订单号
*
* @param int $length
* @return string
*/
function get_order_number($length = 32) {
$date = date('YmdHis');
$micro = explode('.', microtime(true))[1];
$rand = string_random($length - (strlen($date) + strlen($micro)));
return $date . $micro . $rand;
}
}
if (!function_exists('check_bank_card')) {
/**
* 验证银行卡号
*
* @param string $card
* @return bool
*/
function check_bank_card(string $card) {
$arr_no = str_split($card);
$last_n = $arr_no[count($arr_no) - 1];
krsort($arr_no);
$i = 1;
$total = 0;
foreach ($arr_no as $n) {
if ($i % 2 == 0) {
$ix = $n * 2;
if ($ix >= 10) {
$nx = 1 + ($ix % 10);
$total += $nx;
} else {
$total += $ix;
}
} else {
$total += $n;
}
$i++;
}
$total -= $last_n;
$total *= 9;
return $last_n == ($total % 10);
}
}
if (!function_exists('blocking_lock')) {
/**
* 阻塞锁
*
* @param string $lock_name 锁名字
* @param int $valid 有效秒数
* @return mixed
*/
function blocking_lock(string $lock_name, $valid = 3600) {
$lock_key = 'blocking_lock';
while ($exp = Redis::hget($lock_key, $lock_name)) {
if ($exp
Redis::hdel($lock_key, $lock_name);
}
usleep(10);
}
return Redis::hset($lock_key, $lock_name, microtime(true) + $valid);
}
}
if (!function_exists('blocking_unlock')) {
/**
* 释放阻塞锁
*
* @param string $lock_name
* @return mixed
*/
function blocking_unlock(string $lock_name) {
$lock_key = 'blocking_lock';
return Redis::hdel($lock_key, $lock_name);
}
}
if (!function_exists('random_color')) {
/**
* 随机十六进制颜色
*
* @return string
*/
function random_color() {
$str = '#';
for ($i = 0; $i
$randNum = rand(0, 15);
switch ($randNum) {
case 10:
$randNum = 'a';
break;
case 11:
$randNum = 'b';
break;
case 12:
$randNum = 'c';
break;
case 13:
$randNum = 'd';
break;
case 14:
$randNum = 'e';
break;
case 15:
$randNum = 'f';
break;
}
$str .= $randNum;
}
return $str;
}
}
if (!function_exists('get_hour_history')) {
/**
* 获取当日历史小时
*
* @return array
*/
function get_hour_history() {
$history = [];
for ($i = 0; $i <= date('H'); $i++) {
$history[] = $i;
}
return $history;
}
}
if (!function_exists('isAjax')) {
//检查是否为ajax
function isAjax() {
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest') {
return true;
} else {
return false;
}
;
}
}
if (!function_exists('check_upload')) {
//检查上传文件类型,以及是否为http上传
function check_upload($file) {
$ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
$contentType = $file['type'];
if (is_uploaded_file($file['tmp_name']) && $ext == 'txt' && $contentType == 'text/plain' && $file['error'] == 0) {
return true;
} else {
return false;
}
}
}
if (!function_exists('mk_dirs')) {
//递归构建目录
function mk_dirs($dir) {
return is_dir($dir) or (mk_dirs(dirname($dir)) and mkdir($dir, 0777));
}
}
if (!function_exists('get_ip')) {
function get_ip() {
//获取用户的IP地址
//strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。
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'];
}
$res = preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches[0] : '';
return $res;
}
}
if (!function_exists('trim_data')) {
//简单有用的数据过滤
function trim_data($data) {
$data = trim($data);
$data = htmlspecialchars($data);
$data = strip_tags($data);
if(!get_magic_quotes_gpc()) {
$data = addslashes($data);
}
return $data;
}
}
顶一下
(0)
100%订阅
回复
踩一下
(0)
100%