029-68740917

php取随机数

来源:黑白格子网络        点击次数:        发布时间:2015-12-14 12:17:11
第一种:从指定的范围取指定数量的随机数,不重复,先将指定的范围放到一个数组里,在从数组中取,每次取出一个都将这个数从数组中剔除,防止下次再取到,从而达到不重复的目的.<?php
//在100个自然数中取随机数
$list = 100;
//取几个
$nu = 10;
for($s; $s < $list; $s++) {
$a[] = $s;
}
 
for($i; $i < $nu; $i = $key) {
for($n = rand(0,($list - 1)); $a[$n] == $n; $a[$n] = $list) 
{
$key++;
$num[] = $n;
}
}
print_r($num); 
?>
 
第二种:php 生成随机码 实际运用 事例 
分类: PHP 2009-03-24 15:20 237人阅读 评论(0) 收藏 举报 
        define("ACTIVE_PREFIX", "1");                //可以标识为生成激活码的批次
        define("ACTIVE_RAND_NUM", 6);                //随机数的数目
        define("ACTIVE_START", 0);                    //需要产生的随机数数目开始值
        define("ACTIVE_END", 500);                    //需要产生的随机数数目结束值
        define("NUM_PREFIX", 0);                    //补足随机数的宽度
        define("NUM_LEN", strlen(ACTIVE_END - ACTIVE_START));    //随机数的宽度
        for($i = ACTIVE_START; $i <= ACTIVE_END; $i ++){
            $num = $i;
            $len = strlen($num);
            if ($len < NUM_LEN) $num = str_repeat(NUM_PREFIX, (NUM_LEN - $len)) . $num;
            $code = ACTIVE_PREFIX . getRandoms(ACTIVE_RAND_NUM) . $num;
        }
 
 
 
    function getRandoms($length) {
        $arr1 = range(0, 9);
        $arr2 = range('a','z');
        $arr3 = range('A','Z');
        $pattern = array_merge($arr1,$arr2,$arr3);        //合并数组
 
        $len = count($pattern) - 1;
        $key = "";
 
        for($i = 0; $i < $length; $i ++) {
            $key .= $pattern[mt_rand(0, $len)];        //生成php随机数
        }
        return $key;
    }
 
第三种:通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度,代码如下:
<?php
function randomkeys($length){
 $pattern='1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ,./<>?;#:@~[]{}-_=+)(*&^%___FCKpd___0pound;"!'; //字符池
 for($i=0;$i<$length;$i++){
  $key.=$pattern{mt_rand(0,35)};//生成php随机数
 }
 return $key;
}
echo randomkeys(8);
?>
 
  这个php随机函数能生成XC*=z~7L这样的字符串,够随机!
 
  现在介绍另一种用PHP生成随机数的方法:利用chr()函数,省去创建字符池的步骤,代码如下:
<?php
function randomkeys($length){
 $output='';
 for($a=0;$a<$length;$a++){
  $output.=chr(mt_rand(33,126));//生成php随机数
 }
 return $output;
}
echo randomkeys(8);
?>

上一篇:如何避免SSH Secure Shell Client链接LINUX超时,自动断开?
下一篇:joomla 编辑器tinymce中文包

Copyright © 2007-2013      陕西黑白格子软件科技有限公司     . Inc. All Rights Reserve       陕ICP备13009957号-1
联系人:罗先生      手机:18691555525