生成大随机数php

时间:2014-02-14 20:38:41

标签: php random

我想使用PHP生成一个包含75个字符的数字。

我到处搜索,什么都没有,除了这个:http://dailycoding.com/tools/RandomNumber.aspx

我不认为从该页面抓取它是有效的。

我试过的是:

rand(1,9999999999999999999999999999999999999);

5 个答案:

答案 0 :(得分:6)

试试这个

function bigNumber() {
    # prevent the first number from being 0
    $output = rand(1,9);

    for($i=0; $i<74; $i++) {
        $output .= rand(0,9);
    }

    return $output;
}

答案 1 :(得分:2)

function genRandomNumber($length = 15, $formatted = true) {
    $nums = '0123456789';

   // First number shouldn't be zero
    $out = $nums[mt_rand( 1, strlen($nums)-1 )];  

   // Add random numbers to your string
    for ($p = 0; $p < $length-1; $p++)
        $out .= $nums[mt_rand( 0, strlen($nums)-1 )];

  // Format the output with commas if needed, otherwise plain output
    if ($formatted)
        return number_format($out);
    return $out;
}

echo genRandomNumber();         // 7,825,104,236
echo genRandomNumber(14,false); // 11648596961188
echo genRandomNumber(25);       // 7,154,062,783,835,742,231,986,176

见这里:http://codepad.org/yDvyo6MY

答案 2 :(得分:0)

PHP的rand()函数在某些平台上可能只有15位,因此它一次只能用于4位数。但是因为实际上并不需要总数的数值,所以调用rand(0,9999)来获得一个4位数值,将其转换为字符串(你将在它前面连接“000”然后使用substr()修剪为4个字符以获得前导零,并一次向一个大字符串添加4个字符。

答案 3 :(得分:0)

这是不可能的,因为,使用PHP 64位生成的最大整数是9223372036854775807.最大的PHP 32位是2147483647.

您可以在PHP documentation上看到大部分信息。

如果你想要一个等价物,你可以生成一个字符串,但不能操纵你的整数。

答案 4 :(得分:-3)

你去......

function genRandomString($length = 75) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
    $string = '';    

    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters))];
    }

    return $string;
}