好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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;
    }
}

以上就是PHP实用函数集合的详细内容!

查看更多关于PHP实用函数集合的详细内容...

  阅读:44次