站长资讯网
最全最丰富的资讯网站

PHP实用函数集合

推荐:《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);             }             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 < 6; $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;     } }

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号