站长图库向大家介绍了PHP函数,函数集合等相关知识,希望对您有所帮助
实用函数集合,常用于各类数据验证、订单号和随机字符生成等场景使用。都是比较实用的,还是比较可以的~~
<?php if (!function_exists('number_random')) { /** * 生成随机数字串 * * @param int $length * @return string */ function number_random($length = 6) { $result = ''; for ($i = 0; $i < $length; $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 < $length; $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 < microtime(true)) { Redis::hdel($lock_key, $lock_name); } &nbs

