为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,希望光临本博客的人可以进来交流。寻求共同发展。搭建平台。本人博客也有许多的技术文档,希望可以为你提供一些帮助。
QQ群: 191848169 点击链接加入群【PHP技术交流(总群)】
/**
* 生成随机字符串
* @param int $length 要生成的随机字符串长度
* @param string $
type
随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符
* @
return
string
*/
function
randCode($length = 5, $
type
= 0) {
$arr = array(1 =>
"0123456789"
, 2 =>
"abcdefghijklmnopqrstuvwxyz"
, 3 =>
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
, 4 =>
"~@#$%^&*(){}[]|"
);
if
($
type
== 0) {
array_pop($arr);
$string = implode(
""
, $arr);
}
else
if
($
type
==
"-1"
) {
$string = implode(
""
, $arr);
}
else
{
$string = $arr[$
type
];
}
$count = strlen($string) - 1;
for
($i = 0; $i < $length; $i++) {
$str[$i] = $string[rand(0, $count)];
$code .= $str[$i];
}
return
$code;
}
生成定长随机数:
function
generate_code($length = 4) {
return
rand(pow(10,($length-1)), pow(10,$length)-1);
}
|
下面跟上面的效果一样,只是写法不一样而已。
function
generate_code($length = 4) {
$min = pow(10 , ($length - 1));
$max = pow(10, $length) - 1;
return
rand($min, $max);
}
|
如:
echo
generate_code(5);
//
输出结果: 56482
|
再刷新一次,所以数字和顺序都会变动。
以上这两种代码比较简洁,但也只能生成数字,追求代码简洁的可以使用
$arr=range(1,10);
shuffle($arr);
foreach($arr as $values) {
echo
$values.
","
;
}
//
输出结果:10,5,7,8,6,2,9,4,1,3,1
|
这种主要是靠php的内置函数range()来生成,生成两个参数范围的随机数,而且他们是可以生成多组数字,这种就比较呆板了,而且不是都放在方法里面,不过大家可以根据需求来使用。
以下这种跟上面这种没多大区别,只是生成的方法不太一样,主要是靠array_unique函数来生成。
$arr=array();
while
(count($arr)<10) {
$arr[]=rand(1,10);
$arr=array_unique($arr);
}
echo
implode(
" "
,$arr);
|
其他的生成方法我在这里就不多说了,我们只要记住常用的,而且效率比较高的几种就行了,我们在开发的过程中,可以根据需求来写适合我们自己的php随机数函数。